如何在任意云平台上使用 dropbox-js 对 dropbox 进行身份验证?
How to authenticate with dropbox using dropbox-js on arbitrary cloud platform?
我已经使用 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(错误的网关)。
我尝试添加 OAuth2 重定向 URI myapp.evennode.com:8912/oauth_callback
但它不起作用。有没有人使用 dropbox-js 在任何云平台(heroku,evennode ...)上成功实施 dropbox 身份验证?
如有任何帮助,我将不胜感激。
Dropbox.AuthDriver.NodeServer
用于测试目的...它在本地主机上侦听并在本地计算机上打开浏览器(部署在其他地方时肯定不会工作)。
如果您尝试在浏览器中进行身份验证,请参阅 https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ 以获取使用 dropbox.js
的基本示例。
如果您需要使用 node.js 中的服务器端流程,dropbox.js
将无济于事。有关简单示例,请参阅 https://github.com/smarx/othw/tree/master/Node.js。
我已经使用 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(错误的网关)。
我尝试添加 OAuth2 重定向 URI myapp.evennode.com:8912/oauth_callback
但它不起作用。有没有人使用 dropbox-js 在任何云平台(heroku,evennode ...)上成功实施 dropbox 身份验证?
如有任何帮助,我将不胜感激。
Dropbox.AuthDriver.NodeServer
用于测试目的...它在本地主机上侦听并在本地计算机上打开浏览器(部署在其他地方时肯定不会工作)。
如果您尝试在浏览器中进行身份验证,请参阅 https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ 以获取使用 dropbox.js
的基本示例。
如果您需要使用 node.js 中的服务器端流程,dropbox.js
将无济于事。有关简单示例,请参阅 https://github.com/smarx/othw/tree/master/Node.js。