Using AWS Amplify Auth & Core library to authenticate with your AWS Cognito User Pool.
ALPHA ADD-ON: I have just started playing with Cognito and AWS Amplify.
- Attempt to adhere to the Ember Simple Auth principles while exposing a subset
of AWS Amplify's
Auth's features through thesessionservice. - Support sign in/out
- Append access & identity JWT to Ember Data adapter
- Expose
CognitoUser'sattributes,idToken Payload, &accessToken Payloadin thesession.data.authenticatedproperty storage - Support automatic refreshing of access token
- Support Multi-Factor Authentication
- Support user sign up via email address identifier
- Support user password change, password reset, and profile attribute updates
- WORK IN PROGRESS - Support Federated Identities
- WORK IN PROGRESS - Tests (SFA tested so far)
Add issues if there are features you're looking for.
- Hide details of the AWS Amplify
Auth&CognitoUser - Fold into familiar
ember-simple-authecosystem - Automatically refresh access tokens on a schedule using
ember-concurrency
- Ember.js v3.4 or above
- Ember CLI v2.13 or above
- Node.js v8 or above
ember install ember-simple-auth-aws-amplify
When working through the Ember upgrade process, I recommend
invoking the ember install ember-simple-auth-aws-amplify command once
you are done to get the latest version of the add-on.
If you've already got the package installed and just want to run the
add-on blueprint: ember g ember-simple-auth-aws-amplify.
@aws-amplify/auth- Authentication library from AWS Amplify; interacts with AWS Cognito User Pool@aws-amplify/core- Introduced to take advantage of AWS Amplify's event Hubember-auto-import- Pleasantly importauthandcoreember-concurrency- Timed task for refreshing tokenember-simple-auth- The EmberJs foundation auth add-on
Configure your AWS Congnito region, userPoolId, & userPoolWebClientId in your config/environment.js
under the APP.ember-simple-auth-aws-amplify object path.
// config/environment.js
module.exports = function (environment) {
let ENV = {
// ...
APP: {
'ember-simple-auth-aws-amplify': {
awsAmplifyAuth: {
// @see https://aws-amplify.github.io/docs/js/authentication#manual-setup
config: {
// Amazon Cognito Region
region: 'xx-yyyyyy-#',
// Amazon Cognito User Pool ID
userPoolId: 'xx-yyyyyy-#_zzzzzzzzz',
// Amazon Cognito Web Client ID (26-char alphanumeric string)
userPoolWebClientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
}
},
// `mixins/adapters/token-headers.js` uses this field to attach your ACCESS token to your Ember-Data requests
headerAuthorization: 'Authorization',
// `mixins/adapters/token-headers.js` uses this field to attach your ID token to your Ember-Data requests
headerIdentification: 'Identification',
// `utils/mfa-activation-state.js` takes this in it's constructor and uses it when naming your app
// inside the MFA Authenticator App
totpIssuerName: 'Ember-Simple-Auth-Issuer-Example'
}
// ...
}
// ...
};
// ...
return ENV;
};[I'll add some more here before official release]
See the Contributing guide for details.
This project is licensed under the MIT License.





