繁体   English   中英

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

[英]Ember Simple Auth with Multiple Devise Scopes

我有以下场景:

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

两者都在/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为true,我不知道登录的是哪个范围。

哪种方式最好:

  1. 在用户回复中添加role并在会话上设置
  2. 为admin用户创建一个新会话

我解决了这个问题,为每个范围创建3个身份验证器,我处理每个范围。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM