NodeJS
、node-dbox
およびを使用して小さなアプリケーションをまとめようとしていますExpress
。DropBox
承認をリクエストする場合- 3 ステップのプロセスです。最初に を取得request_token
し、次にユーザーがドロップボックス ページにアクセスして承認し、ユーザーがリクエストを承認したという事実access_token
に基づいてをリクエストします。request_token
ただし、ステップ 1 と 2 ( を取得request_token
し、ユーザーに URL を提供する)のページを提供するまでに、request_token
インスタンスはなくなりました!したがって、ステップ 3 で をリクエストできませaccess_token
んrequest_token
。
Cookieに保存しようとしてrequest_token
いますが、機密データが含まれていることを考えると、クライアントに送信するのはあまり良い考えではありません。何か案は?
簡略化されたコードは次のとおりです。
(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
ページを更新しても維持する必要があります。最善の方法は何ですか?