Firebase と Ember で OAuth を設定しようとしています。何らかの理由でエラーが返されます
キャッチされていない TypeError: 未定義のプロパティ 'login' を読み取れません
App.LoginController = Ember.ObjectController.extend({
actions: {
login: function() {
var controller = this;
debugger;
controller.get("session").login().then(function(user) {
// Persist your users details.
}, function() {
// User rejected authentication request
});
}
},
});
ユーザーが定義されていないのではないかと考えていましたが、モデルで定義しました:
App.User = DS.Model.extend({
username: DS.attr('string'),
});
次に、おそらく未定義の「セッション」だと思いました-デバッガーを使用して調べたところ、不明なミックスインであると表示されました。
var session = Ember.Object.extend({
ref: new Firebase("https://glowing-fire.firebaseio.com/"),
addFirebaseCallback: function() {
var session = this;
this.get("ref").onAuth(function(authData) {
if (authData) {
session.set("isAuthenticated", true);
} else {
session.set("isAuthenticated", false);
}
});
}.on("init"),
login: function() {
return new Promise(function(resolve, reject) {
this.get("ref").authWithOAuthPopup("facebook", function(error, user) {
if (user) {
resolve(user);
} else {
reject(error);
}
});
});
},
currentUser: function() {
return this.get("ref").getAuth();
}.property("isAuthenticated")
});
App.Session = Ember.Object.extend({
initialize: function(container, app) {
app.register("session:main", session);
app.inject("controller", "session", "session:main");
app.inject("route", "session", "session:main");
}
});
よろしくお願いします。