【问题标题】:Ember Simple Auth with Multiple Devise Scopes具有多个设计范围的 Ember 简单身份验证
【发布时间】:2015-12-01 06:30:50
【问题描述】:

我有以下场景:

  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.isAuthenticated 为真,我不知道登录了哪些范围。

最好的方法是:

  1. 在用户回复时添加role 并在会话中设置
  2. 为管理员用户创建一个新会话

【问题讨论】:

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


    【解决方案1】:

    我解决了这个问题,为每个作用域创建了 3 个authenticators,然后我处理每个作用域。

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

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

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

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

    【讨论】:

    • 那些 github 存储库不再存在。
    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多