不会触发Dropbox oauth身份验证的IF语句的第二部分

时间:2012-09-08 10:49:35

标签: javascript if-statement dropbox

我尝试了一个简单的if语句,以避免在每个页面加载时运行下面的代码,但是dropbox_authStatus === 1的第二部分没有被触发,尽管alert("authStatus: "+dropbox_authStatus);告诉我dropbox_authStatus是1.有什么问题我的代码?

$('document').ready(function() {

dropbox_authStatus = localStorage.getItem('dropbox_authstatus');
alert("authstatus: "+dropbox_authStatus);

if(!dropbox_authStatus) {
    localStorage.setItem('dropbox_authstatus',1);   
    //initialization
    var client = new Dropbox.Client({
        key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
    });
    alert("initialized");
    //preset driver to the dropbox page
    client.authDriver(new Dropbox.Drivers.Redirect());
    //authentication
    client.authenticate(function(error, client) {
        if (error) {
            return showError(error);  // Something went wrong.
        }
    });
} else if (dropbox_authStatus === 1) {
    localStorage.setItem('dropbox_authstatus',2);   
    //initialization
    var client = new Dropbox.Client({
        key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
    });
    alert("continued");
    //preset driver to the dropbox page
    client.authDriver(new Dropbox.Drivers.Redirect());
    //authentication
    client.authenticate(function(error, client) {
        if (error) {
            return showError(error);  // Something went wrong.
        }
        client.getUserInfo(function(error, userInfo) {
            if (error) {
                return showError(error);  // Something went wrong.
            }

            alert("hello: "+userInfo.name);

        });
    });
    //Save Dropbox credentials
    localStorage.setItem('dropbox_auth', JSON.stringify(client.credentials()));
    alert("credentials saved:"+JSON.stringify(client.credentials()));
}
});

提前致谢! if语句中的代码主要属于github上托管的dropbox.js库:https://github.com/dropbox/dropbox-js/blob/master/doc/getting_started.md

2 个答案:

答案 0 :(得分:0)

从原始问题的评论中得出答案

我只是猜测,但如果日志看起来是正确的,但条件不符合,那么dropbox_authStatus可能是字符串而不是数字。

答案 1 :(得分:0)

最新版本的dropbox.js支持interactive: false方法上的client.authenticate()选项。您可以使用此公共API来实现相同的目标,并且您的代码不会因库更新而中断。

代码段:https://github.com/dropbox/dropbox-js/blob/master/doc/snippets.md#sign-into-dropbox-button

验证文档:http://coffeedoc.info/github/dropbox/dropbox-js/master/classes/Dropbox/Client.html#authenticate-instance