firebase facebook和twitter重新验证:

时间:2013-07-26 11:25:13

标签: facebook authentication twitter login firebase

我已经在我的应用中为Facebook和Twitter正确设置了firebase身份验证,但我遇到了问题。

用户连接后,如果他决定退出并使用其他凭据输入,则无法执行此操作。事实上,如果他试图再次使用Facebook注销,系统不会询问他的用户名和密码,而是使用之前插入的凭据。

我尝试使用rememberMe选项,但它没有解决问题。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我严格遵循可在此处找到的示例:https://www.firebase.com/docs/security/simple-login-overview.html

任何方式我都做了一些检查修改它。 这是我正在使用的代码

firebaseRef = new Firebase('https://cicero.firebaseio.com');
        authClient = new FirebaseAuthClient(firebaseRef, function(error, user) {
            if (error) {
                /*login error*/
                switch(error.code) {
                    case 'INVALID_EMAIL':
                    case 'INVALID_PASSWORD':
                        EventDispatcher.trigger("login_error","invaild user or email");
                        break;
                    case 'INVALID_USER':
                        EventDispatcher.trigger("login_error","user does not exist.");
                        break;
                    case 'UNKNOWN_ERROR':
                        EventDispatcher.trigger("login_error","unknown error, please contact event administrator.");
                }
            } else if (user) {
                    /*user si logga*/
                    cicero_user = user;
                    var users = new Users();
                    users.firebase.on('value',function(){
                        if(cicero_user.provider == 'password'){
                            var user = users.findWhere({id: cicero_user.id, type:'password'});
                            cicero_user.displayName = user.get('name');
                            alert(cicero_user.displayName);
                        } else {
                            var social_user = users.findWhere({id: cicero_user.id,type: cicero_user.provider});
                            if(social_user == undefined){
                                var new_social_user = new User({id: cicero_user.id, name: cicero_user.displayName, type: cicero_user.provider});
                                users.add(new_social_user);
                            }
                        }
                        Ciceronotifier.on();
                        EventDispatcher.trigger("hide_spinner");
                        Backbone.history.navigate("map", {trigger: true});
                    },this);
                    } else {
                            /*user si slogga*/
                            cicero_user = undefined;
                            firebaseRef.unauth(); <-- i have added these two lines right now but the problem seems unresolved
                            firebaseRef = new Firebase('https://cicero.firebaseio.com');
                            Backbone.history.navigate("login", {trigger: true});