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 thesession
service. - Support sign in/out
- Append access & identity JWT to Ember Data adapter
- Expose
CognitoUser
'sattributes
,idToken Payload
, &accessToken Payload
in thesession.data.authenticated
property 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-auth
ecosystem - 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 importauth
andcore
ember-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.