authentication - 具有多个设计范围的 Ember 简单例份验证

标签 authentication ember.js devise ember-simple-auth

我有以下场景:

  1. 具有用户和管理员设计模型的 Rails 应用,所以我有两个范围。
  2. 在路由器上的 ember 应用程序上创建:

    Router.map(function() {
      this.route('panel', function() {
        this.route('login');
        this.route('logout');
      });
      this.route('admin', function() {
        this.route('login');
        this.route('logout');
      });
    });
    
  3. 一旦我的应用程序是 Ember 2.0,我就会使用 jj-abrams 分支

同时在 /users/sign_in/admins/sign_in 上进行身份验证>

我按照 https://github.com/simplabs/ember-simple-auth/tree/master/packages/ember-simple-auth-devise#server-side-setup 上的步骤操作并且身份验证有效。

Ember 在创建验证器和适配器后访问了正确的 url,但问题是 ESA 只有一个 session 服务。一旦用户或管理员登录,session.isAuthenticated 为真,我不知道哪些范围已登录。

哪种方法最好:

  1. 在用户回复上添加一个角色并在 session 中设置
  2. 为管理员用户创建一个新 session

最佳答案

我通过创建 3 authenticators 解决了这个问题对于每个范围,我都会处理每个范围。

一旦我不使用其他身份验证器 (OAuth2),这是一个特殊的解决方案,但现在我可以检查 authenticator:user, authenticator:admin, authenticator:manager 用于登录。

我在路由上创建了检查,所以用户只能访问他的面板,管理员可以访问用户和管理面板,经理可以访问整个系统。

我已经在 github 上发布了 ember 和 API:

ps:我认为为每个范围创建 session 会更好,但我不知道该怎么做(以及是否更好),在此解决方案中,您可以一次登录一个范围(不像设计在 Rails 上,您可以同时记录多个范围。

关于authentication - 具有多个设计范围的 Ember 简单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32409224/

相关文章:

git - 使用 GitHub 进行 Mac OS 命令行身份验证

node.js - PassportJS events.js :160//Unhandled 'error' connection timeout

javascript - 如何使用 Ember js 在一个页面中显示多个路由?

ruby-on-rails - Devise 中两种截然不同的用户模型

java - 登录外部 Api 并向其发送 JSON

javascript - 动态内容加载 View

javascript - 如何使用任何后端的 Ember Data 处理嵌套数据?

ruby-on-rails - 缺少带有 Devise 自定义注册 Controller 的模板

ruby-on-rails - Ruby on Rails - 未定义方法 `admin?' for nil :NilClass

c# - 同步 OWIN Cookie 过期(滑动)和 session 超时