gpt4 book ai didi

javascript - Ember.js 身份验证操作不起作用

转载 作者:行者123 更新时间:2023-12-03 11:01:00 25 4
gpt4 key购买 nike

这是我第一次使用 ember.js。当用户成功登录(经过身份验证)时,我尝试使用 Controller 执行操作。但是,我当前保存用户状态甚至更改属性 'this.set('userSignedIn', state);' 的方法不管用。我不太清楚为什么,我猜这与我的“state”变量的范围有关,或者可能“this”对象没有被传递给“ref.authWithOAuthPopup()”。我希望有人能指出正确的方向。

var ref = new Firebase("https://<app>.firebaseio.com");
var state = false;
MyApp.ApplicationController = Ember.Controller.extend({
userSignedIn: false,
actions: {



signin: function() {
ref.authWithOAuthPopup("facebook", function(error, authData) {
if (error) {
console.log("Login Failed!", error);

} else {
console.log("Authenticated successfully with payload:", authData);
state = true;

}
});
this.set('userSignedIn', state);
console.log(state);
}, // End of signin



}
});

最佳答案

您在触发 Firebase.authWithOAuthPopup(provider, onComplete, [options]) onComplete 回调之前设置 userSignedIn。相反,试试这个:

signin: function() {
controllerContext = this;
ref.authWithOAuthPopup("facebook", function(error, authData) {
if (error) {
console.log("Login Failed!", error);

} else {
console.log("Authenticated successfully with payload:", authData);
state = true;
controllerContext.set('userSignedIn', state);
console.log(state);
}
});


}, // End of signin

关于javascript - Ember.js 身份验证操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com