我正在使用rails,devise和基於cookie的會話使用Ember.js應用程序身份驗證來滿足3個目標。Ember.js基於會話cookie的基於Rails和設計的身份驗證
- 重定向到
#/sessions/new
如果他們沒有登錄。 - 總是顯示當前用戶的應用程序中的模板信息。
- 如果用戶已登錄,並且他們直接轉到
#/some/route
。當前用戶應該在加載時加載。
我看過這些embercast視頻:Client-side Authentication Part 1 & Client-side Authentication Part 2。他們有點過時但很有幫助。
但仍不能完全解決。任何人都有完整的Rails 4,Devise,Emberjs 1.0.0例子嗎?
最大的問題是有策略在頁面加載時加載當前用戶並在提交登錄表單時設置當前用戶。
現在這是我的策略:
App.User = Em.Object.extend();
App.User.reopenClass({
current: function() {
return Ember.$.getJSON("https://stackoverflow.com/users/current").then(function(data) {
return data
})
}
});
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return App.User.current();
}
});
App.SessionsNewController = Ember.ObjectController.extend({
actions: {
save: function(data) {
var self = this, data = this.getProperties('email', 'password');
$.post("/sessions", { session: data }).always(function(response, status, data) {
if (status == "success") {
self.transitionToRoute('index');
} else {
self.set('errorMessage', data);
}
})
},
}
});