@poseclop/ng-cognito v0.0.6
NgCognito
This Angular library provide a service that allows an easy interaction with AWS Cognito Identity SDK.
3 modules are provided: 1. NgCognitoServiceModule: Allows interaction with cognito identity pool via the CognitoService 2. NgCongitoInterceptorModule: Adds Cognito auth header to all http requests 3. 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\ | Login the user with provided authentication details authenticate(): Observable\ | 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