如果我进行手动页面刷新或像这样设置重定向
}).then(function() {
document.location = "/";
}, function() {
在我的 Ember 应用程序的一个函数中,一个 Ember 控制器属性变得未设置。我不确定哪个属性变得未设置是否重要,但如果确实如此,这里是代码。在我的应用程序模板中,我检查用户是否经过身份验证
{{#if isAuthenticated}}
blah blah
{{else}}
blah blah
{{/if}}
该属性在 AuthController 中设置
App.AuthController = Ember.ObjectController.extend({
currentUser: null,
isAuthenticated: Em.computed.notEmpty("currentUser.email"),
login: function(route) {
var me;
me = this;
return $.ajax({
url: "/users/sign_in.json",
type: "POST",
data: {
"user[email]": route.currentModel.email,
"user[password]": route.currentModel.password
},
success: function(data) {
me.set('currentUser', data.user);
因此,在我刷新页面后,我的 currentUser (根据 Ember)不再显示为已通过身份验证。但是,在(Ruby on Rails)服务器端,用户仍然是经过身份验证的。我将此代码放在布局中进行检查,在 Ember 认为我已注销(页面刷新)之后,我的服务器代码仍然告诉我我已登录(实际上我是)。
<% if current_user %>
there is a current user
<% end %>
你能解释为什么会发生这种情况吗?