で認証を実装するためにember-simple-auth ダミーアプリに従っていtoriiます。すべてが機能し、アプリは認証されますが、サーバーから返された追加の属性を に保持できませんdata.authenticated。認証メソッドが期待するのと同じように、追加の属性tokenを使用してオーセンティケーター メソッドから promise を返しemail、セッションの に永続化されますdata.authenticated。
// ~/frontend/app/authenticators/torii.js
import Ember from 'ember';
import ToriiAuthenticator from 'ember-simple-auth/authenticators/torii';
export default ToriiAuthenticator.extend({
torii: Ember.inject.service(),
authenticate() {
return this._super(...arguments).then((data) => {
return new Ember.RSVP.Promise((resolve, reject) => {
return Ember.$.ajax({
url: '/token',
type: 'POST',
dataType: 'json',
data: { 'grant_type': 'facebook_auth_code', 'auth_code': data.authorizationCode, redirect_uri: data.redirectUri }
}).then(response => {
Ember.run(() => {
Ember.Logger.log('response', response); // => {access_token: ".....", provider: "facebook-oauth2", token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkI…WxsfQ.xx6fBkwqwm7HeoOpnRWRVCKF71DdIhxyQggcfZ6325s", email: "..@....com"}
resolve(response);
});
}, xhr => {
Ember.run(() => { reject(xhr.responseJSON || xhr.responseText); });
});
});
});
}
});
認証の実行:this.get('session').authenticate('authenticator:torii', 'facebook-oauth2');認証に成功しましたが、の内容は、それが持続することを期待している間data.authenticatedだけです。{authenticator: "authenticator:torii", provider: "facebook-oauth2"}tokenemail
さらに、オーセンティケーターtoriiもあり、デフォルトで追加の属性を正常に保持します。devise
私は使用して"ember-simple-auth": "1.1.0", ember-data 2.7.0おり、ember 2.7.2すべて経由してember-cli-railsいます。
更新 1:奇妙なことに、バックエンドからの ajax 応答に含めるauthenticator: 'authenticator:devise'と、オーセンティケーターはすべての属性を保持します。'/token'torii