【发布时间】:2016-08-18 20:45:36
【问题描述】:
我正在 nodejs 上做我的第一个测试应用程序。这很简单。从 api 获取数据并将其显示在浏览器上。以下是我遵循的步骤。
- 我使用 express for web 和 request 来获取 API 结果。
- 首先,我使用 Oauth2 客户端凭据方法从 API 服务器请求令牌。
- 我得到一个令牌并将它传递给资源 URL 并得到结果。
- 使用 pug (Was Jade) 模板引擎将其显示到浏览器。
var express = require('express');
var tools = require('./tools');
var app = express();
var request = require('request');
app.set('view engine', 'pug');
// Get the token key
tools.generateToken(function(response){
token = response;
});
//Index Page routing
app.get('/', function (req, res) {
//res.send('Hello World '+token);
var request = require('request');
request('URL?access_token='+token+'&n=10&pgno=2', function (error, response, body) {
if (!error && response.statusCode == 200) {
res.render('index', { layout : 'layout', json: JSON.parse(body) });
}
})
});
var server = app.listen(3000, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
一切似乎都运行良好。但是一旦令牌过期,我就无法检索任何结果(很明显)。但是我不知道什么时候可以得到新的令牌。我应该什么时候调用令牌生成功能?
另外,有没有办法在不刷新浏览器的情况下跟踪 API 数据更改?请帮忙。谢谢。
【问题讨论】:
-
任何提供对需要身份验证的资源的访问的路由都应该有一个身份验证中间件,您可以在此处检查令牌的有效性并在令牌合法时允许请求通过。通常,您会在此处更新 db/cache 中令牌的到期时间戳,以防止出现这种情况。
标签: node.js json api express oauth-2.0