6

我在我的应用程序中使用Ember 简单身份验证,它运行良好,但我遇到了一个我无法解决的场景。

该库允许您通过覆盖指定在成功验证后重定向到的路由routeAfterAuthentication: 'index'。这工作正常,但是,我发现自己处于想要有两种不同类型的重定向的情况。当用户第一次登录时,我希望他们去/dashboard,但是当他们第一次注册并进行身份验证时,我希望他们去/settings

我希望在成功创建帐户后能够做这样的事情,但它仍在尝试使用该routeAfterAuthentication选项进行转换:

var _this = this;

this.set('identification', _this.get('email'));
this.set('password', password);

this.send('authenticate', function() {
  _this.transitionToRoute('settings');
}, function() {});

有没有一种方法可以指定在一次性进行身份验证后转换到哪条路由?也许有更好的方法可以在创建帐户后登录某人而无需通过该authenticate()方法?

4

1 回答 1

8

您可以简单地覆盖sessionAuthenticated 应用程序路由中的方法并实现自己的逻辑。请注意,尽管默认实现不会始终转换为routeAfterAuthentication-- 如果会话中存储了先前截获的转换,sessionAuthenticated则会重试该转换。

于 2014-08-15T06:06:11.067 回答