0

dropbox-js を使用して、ローカル マシンに Dropbox ログインを正常に実装しました。

認証は、次の関数で実行されます。

router.get('/dropbox', isAuthenticated, function(req, res, next) {
    var isLoggedIn = !!req.user;
    var dropboxClient = req.app.get('dropboxClient');


    dropboxClient.authenticate(function(error, client) {
        if (error) {

            console.log(error);
        }
        dropboxClient.readdir("/", function(error, entries) {
            if (error) {
                console.log(error);  // Something went wrong.
                return 0;
            }
            console.log(entries);
            var folders = getFolders(entries);
            console.log("Your Dropbox contains " + folders.join(", "));
            res.render('settings', { title: 'Express', loggedIn: isLoggedIn, folders: folders });
        });
    });
});

dropboxClient は app.js で次のように定義されています。

var dropboxClient = new Dropbox.Client({
  key: dropboxConfig.dropbox.app_key,
  secret: dropboxConfig.dropbox.app_secret
});
dropboxClient.authDriver(new Dropbox.AuthDriver.NodeServer(8191));

また、Dropbox アプリ コンソールで定義されている OAuth 2 リダイレクト URI は次のとおりです。

http://localhost:8912/oauth_callback

前述のように、アプリがローカルで実行されている場合はすべて正常に動作しますが、クラウド プラットフォームに転送すると応答 502 (Bad gateway) が返されます。

OAuth2 リダイレクト URI を追加してみましたmyapp.evennode.com:8912/oauth_callback

しかし、それは機能していません。dropbox-js を使用して、任意のクラウド プラットフォーム (heroku、evennode ...) でドロップボックス認証を正常に実装できた人はいますか?

助けていただければ幸いです。

4

1 に答える 1