Tho*_*mas 21 javascript oauth node.js
我想让OAuth在node.js上工作.我在node-oauth的文档中找到了这个:
var OAuth= require('oauth').OAuth;
var oa = new OAuth(requestUrl,accessUrl,consumerKey,consumerSecret,"1.0A",responseUrl,"HMAC-SHA1");
Run Code Online (Sandbox Code Playgroud)
官方教程的下一步说:
"然后根据正常渠道获取有效的访问令牌+访问令牌秘密"
这些"正常渠道"是什么?
我知道用户必须在"供应商"网站上以某种方式进行身份验证,并且通过某种方式调用响应URL,但我找不到如何实现此操作的说明.有人可以开导我吗?
mat*_*nus 23
我不确定你要连接的OAuth服务是什么,所以我只是以twitter为例.创建OAuth对象后,您需要先请求oauth令牌.当您获得该令牌时,您需要重定向到Twitter,他们的身份验证页面会提示他们登录,然后询问该应用程序是否可以登录.
oa.getOAuthRequestToken(function(error, oauth_token, oauth_token_secret, results){
if (error) new Error(error.data)
else {
req.session.oauth.token = oauth_token
req.session.oauth.token_secret = oauth_token_secret
res.redirect('https://twitter.com/oauth/authenticate?oauth_token='+oauth_token)
}
});
Run Code Online (Sandbox Code Playgroud)
首次创建OAuth对象时,可以设置responseURL或回调URL.它可以是任何东西,对于我的应用程序它只是/ oauth /回调.在该回调中,您将收到oauth验证程序令牌.然后,您可以使用oauth请求令牌和oauth验证程序令牌来请求访问令牌.当您收到访问令牌时,您还会收到他们传递的任何其他内容,例如他们的用户名.
app.get('/oauth/callback', function(req, res, next){
if (req.session.oauth) {
req.session.oauth.verifier = req.query.oauth_verifier
var oauth = req.session.oauth
oa.getOAuthAccessToken(oauth.token,oauth.token_secret,oauth.verifier,
function(error, oauth_access_token, oauth_access_token_secret, results){
if (error) new Error(error)
console.log(results.screen_name)
}
);
} else
next(new Error('No OAuth information stored in the session. How did you get here?'))
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!当我开始这个时,我遇到了同样的问题.
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |