【发布时间】:2014-07-26 20:14:11
【问题描述】:
我正在尝试获得一个干净的 Instagram oauth,而不依赖于诸如护照或 instagram-node 之类的中间件来学习该过程并拥有最大的控制权。我一直在尝试遵循 instagram 服务器端(显式)流程,这是一个两步操作:
- 请求访问代码
- 请求访问令牌
现在我的服务器设置使用:
express = require('express'),
app = express();
并开始我正在使用的第一步:
app.get('/', function(req, res){
var url = 'https://api.instagram.com/oauth/authorize/?client_id='+CLIENT-ID+'&redirect_uri='+YOUR-REDIRECT-URI+'&response_type=code'
res.redirect(url);
});
上述步骤将我正确发送到 instagram 进行身份验证,并且 instagram 的重定向回调在下面被拾取,此时 console.log 确实显示了正确的 instagram 代码。但是 res.set 部分是错误的,不起作用。
app.get('/auth/instagram/callback', function(req, res){
console.log('/// here to keep track of how many times this is called');
console.log('Instagram code: ', req.query.code);
var url = 'https://api.instagram.com/oauth/access_token';
res.set({
'client_id' : 'CLIENT-ID',
'client_secret' : 'CLIENT-SECRET',
'grant_type' : 'authorization_code',
'redirect_uri' : 'YOUR-REDIRECT-URI',
'code' : req.query.code
}).redirect(url);
});
不幸的是,它在这一点上挂起,显然没有返回正确的数据。
Instagram 建议执行以下操作,但我不确定这将如何快速翻译:
curl \-F 'client_id=CLIENT-ID' \
-F 'client_secret=CLIENT-SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=YOUR-REDIRECT-URI' \
-F 'code=CODE' \https://api.instagram.com/oauth/access_token
任何对此的见解都将受到欢迎!
感谢您的帮助。
【问题讨论】:
标签: node.js curl express oauth-2.0 instagram