Ember 具有多个设计范围的简单身份验证
Ember Simple Auth with Multiple Devise Scopes
我有以下场景:
- Rails 具有用户和管理员设计模型的应用程序,所以我有两个范围。
创建于 ember 路由器上的应用程序:
Router.map(function() {
this.route('panel', function() {
this.route('login');
this.route('logout');
});
this.route('admin', function() {
this.route('login');
this.route('logout');
});
});
我正在使用 jj-abrams
分支,一旦我的应用程序是 Ember 2.0
同时在 /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
为真,我不知道登录了哪些范围。
哪种方法最好:
- 在用户回复中添加
role
并在会话中设置
- 为管理员用户创建一个新会话
我解决了这个问题,为每个范围创建了 3 个 authenticators,并且我处理了每个。
这是一个特殊的解决方案,一旦我不使用其他验证器(OAuth2),但现在我可以检查是否使用 authenticator:user
、authenticator:admin
、authenticator:manager
登录.
我创建了路由检查,所以用户只能访问他的面板,管理员可以访问用户和管理面板,经理可以访问整个系统。
我已经在 github 上发布了 ember 和 API:
- https://github.com/fernandes/ember-auth-web 为 ember
- https://github.com/fernandes/ember-auth-api 为设计 api
ps:我认为为每个范围创建会话会更好,但我不知道该怎么做(以及是否更好),在此解决方案中,您可以登录一个范围一次(不像 rails 上的设计,你可以一次登录多个范围)。
我有以下场景:
- Rails 具有用户和管理员设计模型的应用程序,所以我有两个范围。
创建于 ember 路由器上的应用程序:
Router.map(function() { this.route('panel', function() { this.route('login'); this.route('logout'); }); this.route('admin', function() { this.route('login'); this.route('logout'); }); });
我正在使用
jj-abrams
分支,一旦我的应用程序是 Ember 2.0
同时在 /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
为真,我不知道登录了哪些范围。
哪种方法最好:
- 在用户回复中添加
role
并在会话中设置 - 为管理员用户创建一个新会话
我解决了这个问题,为每个范围创建了 3 个 authenticators,并且我处理了每个。
这是一个特殊的解决方案,一旦我不使用其他验证器(OAuth2),但现在我可以检查是否使用 authenticator:user
、authenticator:admin
、authenticator:manager
登录.
我创建了路由检查,所以用户只能访问他的面板,管理员可以访问用户和管理面板,经理可以访问整个系统。
我已经在 github 上发布了 ember 和 API:
- https://github.com/fernandes/ember-auth-web 为 ember
- https://github.com/fernandes/ember-auth-api 为设计 api
ps:我认为为每个范围创建会话会更好,但我不知道该怎么做(以及是否更好),在此解决方案中,您可以登录一个范围一次(不像 rails 上的设计,你可以一次登录多个范围)。