我正试图在我的Ember应用程序(2.10)中进行授权 . 我的工作流程是
-
用户点击了 Facebook login 的按钮
-
我正在使用torii获取访问令牌/我的用户数据库在firebase /上
-
然后我用facebook提供商将令牌发送到firebase.auth . 它返回 JWT 标记 .
Problem 我得到了JWT令牌,现在我必须登录我的emberapp . 我想在这里定制torii身份验证器 . 我如何在ember应用程序中实现它 . 以下是我的身份验证员:
authenticate() {
return this._super(...arguments).then((torii) => {
const serverTokenEndpoint = this.get('serverTokenEndpoint');
return this.get('ajax').request(serverTokenEndpoint, {
type: 'POST',
data: {
'type': torii.provider,
'client_id': this.client,
'token': torii.authorizationCode
}
}).then((token) => {
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives Facebook Access Token.
// JWT-token=result.user.Cd
// JWT-token.iat at=result.user.ea.Sa
// JWT-token-refresh = result.user.refreshToken
console.log(result)
// token = result.user.Cd;
// const expiresAt = this._absolutizeExpirationTime(result.user.ea.Sa);
token = Ember.assign(token, { 'expires_at': result.user.ea.Sa });
// this._scheduleAccessTokenRefresh(result.user.ea.Sa, expiresAt, result.user.refreshToken, torii);
return Ember.assign(token, {'torii': torii});
});
});
});
}
2 回答
查看ESA回购中的this guide . 它涵盖了torii和Github auth,但一般概念对于您的用例是相同的 .
@marcoow我确实尝试了这个并且它进行了身份验证但是当令牌过期时我无法刷新令牌 . 看起来这不是正确的方法,我如何使用firebase刷新令牌