【发布时间】:2015-08-22 19:17:41
【问题描述】:
我正在尝试使用 Rails 后端设计 Ember 应用程序的身份验证流程。我基本上想通过谷歌/Facebook/等对用户进行身份验证,我不想提供“独立”的身份验证服务。我当然想在服务器端维护一个用户列表,可能会将来自不同来源的不同身份验证合并到同一个用户中。我不会在客户端代表用户在 Google/Facebook 上进行交互,但我会在服务器端进行。
出于上述原因,我计划执行以下操作:
我将使用 torii 在客户端获取 auth_token,然后将其传递到服务器端,在那里我将对其进行验证,并将其转换为访问令牌。
我将在服务器端生成一个自定义令牌,并将其发送回客户端,并要求所有进一步的 API 调用都附带该令牌。我根本不会与客户端共享访问令牌。
你会说这是一个最优流程吗?
在实现方面,我已经能够使用示例here 从不同的提供者那里获得 auth_tokens。但是我完全不确定:
- 如果我需要 ember-simple-auth 或只需要 torii(这两者如何互补?)
-
如何将身份验证令牌传递到服务器端?使用下面的代码,我可以获得身份验证令牌,但这是实现 API 调用的合适位置吗?
export default Ember.Route.extend({ actions: { googleLogin: function() { var _this = this; this.get('session').authenticate('simple-auth-authenticator:torii', 'google-oauth2').then( function() {console.log(_this.get('session.secure.authorizationCode'));} ); return; }, facebookLogin: function() { this.get('session').authenticate('simple-auth-authenticator:torii', 'facebook-oauth2'); return; } } }); 如何向 API 发出所有进一步请求以附上特定令牌?
- 我是否应该在服务器端使用设计以使其更容易?
【问题讨论】:
标签: authentication model-view-controller ember.js oauth