我正在尝试创建一个拥有本地用户的MEAN应用程序,但他们也可以将Instagram连接到它(不使用Instagram登录,而只是授权应用程序获取图像)。
目前我正在使用passport和jwt令牌来验证本地用户。我有一个按钮,将他们带到instagram身份验证页面,然后该应用程序将成功授权instagram,然后发送到服务器端的instagram redirect_uri,但是此GET请求没有关于哪个本地用户正在验证instagram的信息,那么如何将该Instagram访问令牌分配给请求链接该帐户的本地用户呢?
感谢任何建议。
谢谢。
编辑: 我正在使用npm instagram-node(https://www.npmjs.com/package/instagram-node)来协助api调用,
这是我的Instagram组件打字稿功能,在点击“连接instagram”按钮时运行
this.http.get('http://192.168.0.20:8080/auth/social/ig').subscribe(data => {
window.location.href = data.url
})
这就是我app.js中的内容
//instagram
exports.authorize_user = function(req, res) {
res.redirect(api.get_authorization_url(redirect_uri, { scope: ['likes'], state: 'a state' }));
};
exports.handleauth = function(req, res) {
console.log('req user in handlauth');
console.log(req.user)
api.authorize_user(req.query.code, redirect_uri, function(err, result) {
if (err) {
console.log(err.body);
res.send("Didn't work");
} else {
console.log('Yay! Access token is ' + result.access_token);
res.send('You made it!!');
}
});
};
^理想情况下,我希望结果中的令牌存储在当前用户中,但req.user当然为null,因为此请求与jwt令牌无关:/
//authorize isnta link
app.get('/auth/social/ig', exports.authorize_user);
// This is your redirect URI
app.get('/oauth/done', exports.handleauth);
答案 0 :(得分:0)
如果有人想知道,我最终做的是在授权路径中 app.get('/ auth / social / ig /:localuser',exports.authorize_user);
使用通配符作为用户名,然后将用户名置于状态,然后在回调时,只需解析状态以获取本地用户的用户名。