我正在尝试使用和组合一个小应用NodeJS
程序。请求授权时 -这是一个 3 步过程,首先需要获取,然后用户授权他们访问保管箱页面,然后才请求,基于用户已授权请求的事实。node-dbox
Express
DropBox
request_token
access_token
request_token
但是,当我为第 1 步和第 2 步提供页面时(获取request_token
并为用户提供 url) -request_token
实例已经消失了!所以在第 3 步中我无法请求access_token
,因为它需要request_token
通过
我正在尝试保存request_token
在 cookie 中,但鉴于其中包含敏感数据,将其发送给客户端可能不是一个好主意。有任何想法吗?
简化代码如下:
(function() {
var dbox = require('dbox'),
config = require('easy-config'),
express = require('express'),
dboxApp = dbox.app(config.dropbox_credentials),
app = express();
app.use(express.cookieParser());
app.get('/', function(req, res) {
dboxApp.requesttoken(function(status, request_token) {
res.cookie('request_token', JSON.stringify(request_token));
res.send("<a href='" + request_token.authorize_url + "' targe='_new'>authorize via dropbox</a><br/>" + "<a href='/next'>next</a>");
});
});
app.get('/next', function(req, res) {
var request_token = JSON.parse(req.cookies.request_token);
if(request_token) {
dboxApp.accesstoken(request_token, function(status, access_token) {
var client = dboxApp.client(access_token);
client.account(function(status, reply){
res.send(reply);
});
});
} else {
res.send('sorry :(');
}
});
app.listen(3000);
})();
额外的问题:client
是用创建的access_token
,所以无论是客户端实例还是access_token
需要在页面刷新之间进行维护,最好的方法是什么?