我有以下情况:
在路由器上的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');
});
});
我的应用程序是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
为真,我不知道登录的是哪个范围。
这是最好的方法:
role
并在会话答案 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_values
,authenticator:user
来登录
我已经创建了路由检查,因此用户只能访问他的面板,管理员可以访问用户和管理面板,管理员可以访问整个系统。
我已经在github上发布了ember和API:
ps:我认为最好为每个范围创建会话,但我不知道该怎么做(如果它更好或没有),在这个解决方案中你可以一次登录一个范围(不是就像在轨道上设计一样,您可以一次登录许多范围。)