用谷歌进行Ember oauth用户身份验证,然后在rest api上自动注册,困境

时间:2014-08-29 17:22:15

标签: api rest authentication ember.js oauth

我将用Python和Flask编写休息api。目前,只有与该API交互的客户才是使用EmberJS编写的网站。我将使用基本身份验证与令牌进行身份验证。但我也想让用户通过oauth(ember-oauth2)与其他服务(google,facebook ...)进行身份验证。

Ember-oauth2纯粹是客户端身份验证,当用户使用身份验证服务时,我的ember网站将以身份验证服务的api令牌结束。现在,我想将该信息传播到后端rest api end获取令牌(并自动注册用户,如果这是他的第一次登录),ember应用程序将继续与api交互,就像用户登录时一样通过基本认证。

我认为将身份验证服务(例如Google)提供的令牌以及用户电子邮件发送到其余的api,并从其他api中检查令牌,例如https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=以及是否发送电子邮件从该请求匹配发送到api的电子邮件我将为ember应用程序创建令牌。

所以:

  1. 用户点击ember网站上的“使用Google登录”。
  2. 在oauth flow用户通过身份验证后,ember应用程序具有googles token
  3. Ember app将令牌和电子邮件发送到/ api / session
  4. Rest api检查令牌,电子邮件与https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=电话匹配。
  5. 如果是第一次登录,Rest api会注册用户。
  6. Rest api创建令牌(使用TTL,保存在Redis中),用于进一步通信并将其返回给ember应用程序。
  7. 这种方法是安全可靠的(我会使用SSL)还是有更好的方法?

0 个答案:

没有答案