@poseclop/ng-cognito
v0.0.6
Published
This Angular library provide a service that allows an easy interaction with AWS Cognito Identity SDK.
Readme
NgCognito
This Angular library provide a service that allows an easy interaction with AWS Cognito Identity SDK.
3 modules are provided:
- NgCognitoServiceModule: Allows interaction with cognito identity pool via the CognitoService
- NgCongitoInterceptorModule: Adds Cognito auth header to all http requests
- NgGuardsModule: Provide LoggedGuards and NonLoggedGuards
Dependencies
Amazon Cognito Identity SDK for JavaScript
Installation
- Install the Package with
npm install @poseclop/ng-cognito - Install Amazon Cognito Identity SDK
- Add
(window as any).global = window;to polyfill.ts (needed for Amazon Cognito Identiy SDK to work)
Cognito Service
- Setup your user Pool
const pool = new CognitoUserPool({ UserPoolId: 'myUserPoolId', ClientId: 'myClientId' }); - Import the module with it's associated pool in your application
@ngModule({ ..., imports: [ ..., NgCognitoServiceModule.forRoot(pool) ] })
Cognito Guards
- Setup the redirect routes
const guardsConfig: ICognitoGuardsConfig = { loggedOut: ['/', 'login'], loggedIn: ['/', 'home'] }; - Import the guard module in you application
@ngModule({ ..., imports: [ ..., NgCognitoGuardsModule.forRoot(pool) ] })
Cognito Interceptors
- Import the interceptor module in your application
@ngModule({ ..., imports: [ ..., NgCognitoInterceptorModule ] })
Usage
All methods are available via the PosCognitoService.
API
PosCognitoService
Properties Name | Description ---- | ----------- session: CognitoUserSession | The User session token: string | The User authentication token userId: string | The unique ID of the User logged: boolean | Is the User session valid? user: CognitoUser | The cognito User
Methods Name | Description ---- | ----------- login(authenticationDetailsData: IAuthenticationDetailsData): Observable<PosCognitoServiceResponse> | Login the user with provided authentication details authenticate(): Observable<PosCognitoServiceResponse> | Authenticate the user on current Session completePasswordChallenge(authenticationDetailsData: IAuthenticationDetailsData): Observable<\PosCognitoServiceResponse> | Complete the password Challenge logout(): Observable<\PosCognitoServiceResponse> | Logout current User
Todo
[ ] Manage Cognito User Attributes [ ] Manage confirmRegistration [ ] Manage Resend Confirmation Code [ ] Manage getUserAttributes [ ] Manage User attributes (verify/add/delete/update) [ ] Manage MFA (enable/disabled/get) [ ] Manage ChangePassword [ ] Manage forgot Password [ ] Manage delete User [ ] Manage devices
