私は、レール、devise、およびcookieベースのセッションを使用してEmber.jsアプリ認証で3つの目標を達成しようとしています。彼らはログインしていない場合#/sessions/new
にリダイレクトEmber.js RailsとのセッションCookieベースの認証
- 。
- 常にアプリケーションテンプレートでは、現在のユーザーの情報を表示します。
- ユーザーがログインしている場合は、
#/some/route
に直接アクセスします。現在のユーザーは、ロード時にロードする必要があります。 Client-side Authentication Part 1 & Client-side Authentication Part 2:
は、私はこれらのembercastビデオを見てきました。彼らは少し時代遅れだが役に立つ。
しかし、まだ完全な解決策ではありません。誰でも完全な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);
}
})
},
}
});