我尝试在nodejs中实现OAuth解决方案。我使用passport-oauth来生成acccess令牌和刷新令牌,这些令牌正在运行。
var passport = require('passport'),
OAuth = require('oauth').OAuth,
url = require('url'),
ArenaNet = require('passport-oauth').OAuth2Strategy,
config = require('../config'),
users = require('../../app/controllers/users.server.controller');
module.exports = function() {
passport.use('arenanet', new ArenaNet({
authorizationURL: config.arenanet.authorizationURL,
tokenURL: config.arenanet.tokenURL,
clientID: config.arenanet.clientID,
clientSecret: config.arenanet.clientSecret,
callbackURL: config.arenanet.callbackURL,
response_type: "code",
scope: "offline account"
},
function(accessToken, refreshToken, code, profile, done) {
console.log(accessToken);
console.log(refreshToken);
console.log(code);
done();
}));
};
这会生成以下输出:
69XXXXF-776D-4CXX-AXX7-29XXXXXX4DB5
5FXXXXXX-XXX67-E1XXX1-809D-XXXXXXXXXXXXXXXX-XX69-4XX6-XXF-4C6XXXXX08EB
{ access_token: 'XX0XXXXXF-77XXX-4XXXX-XXXA7-295XXXXXXB5',
token_type: 'Bearer',
scope: 'account' }
我是OAuth的新手。让我感到困惑的是如何使用令牌访问远程URL。我的想法是这样的:
oauth.get(
"https://api.guildwars2.com/v2/account",
accessToken,
function(err, body, response) {
console.log(body);
}
);
什么显然不起作用。我看到几个例子,我如何使用令牌访问本地站点,但不知道如何从远程URL请求内容。
有什么建议我怎么能用护照-oauth这个?或者我是否需要使用不同的模块来执行此操作?
我希望你能在这里帮助我,会很酷!
谢谢大家和最诚挚的问候, 迈克尔