ember-simple-auth-aws-amplify
v0.2.0-alpha.0
Published
Ember Simple Auth implementation using AWS Amplify.
Downloads
24
Maintainers
Readme
ember-simple-auth-aws-amplify
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.
Features
- 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.
Motivation
- 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
Built With
Tested Against
Installation
ember install ember-simple-auth-aws-amplify
Upgrading
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
.
Dependencies
@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
Quick Start
EmberJs Configuration
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;
};
AWS Cognito Configuration
Pool Attributes
Pool Policies
Pool MFA And Verifications
Pool Devices
Pool App Clients
Client Settings
Examples & Workflow
Sign Up
Sign In
Sign Out
Usage
[I'll add some more here before official release]
Contributing & Yadda-Yadda-Yadda
Check out CONTRIBUTING.md.
License
This project is licensed under the MIT License.