具有多个设计范围的Ember Simple Auth

时间:2015-09-05 03:27:54

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

我有以下情况:

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

    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分支

  4. /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. 上设置
    3. 为admin用户创建新会话

1 个答案:

答案 0 :(得分:3)

我解决了这个问题,为每个范围创建3 authenticators,我处理每个范围。

一旦我不使用其他身份验证器(OAuth2),这是一个特殊的解决方案,但现在我可以检查是否使用了function str_deletions ($str) { $prev = $str[0]; $length = strlen($str); $deletions = 0; $output = ""; for ($i=1 ; $i < $length; $i++) { if ($str[$i]== $prev) { $deletions++; $prev = $str[$i]; // not sure here ? } } echo $output; // ? return $deletions; } $str = "aabbcc"; echo str_deletions ($str); regex or array_count_valuesauthenticator:user来登录

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

我已经在github上发布了ember和AP​​I:

ps:我认为最好为每个范围创建会话,但我不知道该怎么做(如果它更好或没有),在这个解决方案中你可以一次登录一个范围(不是就像在轨道上设计一样,您可以一次登录许多范围。)