[英]Node.js Loopback Framework + Twitter oauth doesn't work on a live server
我正在使用带有Node-Twitter库的Loopback第三方登录护照进行api调用。
我已经建立
var client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
这是节点提交器正常工作所必需的,我为Twitter帐户手动指定了所有这些凭据,因为我无法从我的accountIdentity模型中获取token和tokenSecret。
我有一个“添加推特帐户”按钮,该按钮将用户重定向到Twitter授权页面并实现oauth,然后将用户重定向回到该页面(在本地计算机上),但是在实时服务器上,它将重定向到/ auth / twitter,然后什么都没有。
我进行了Twitter api调用,例如朋友/ id,用户/查找,帐户/ verify_credentials,它们在我的本地计算机上工作正常。 我希望他们也可以在实时服务器上工作,但事实并非如此。
providers.json
{“ twitter-login”:{“ provider”:“ twitter”,“ authScheme”:“ oauth”,“ module”:“ passport-twitter”,“ callbackURL”:“ dev.mysite.com/auth/twitter/callback “,” authPath“:” dev.mysite.com/auth/twitter"、"callbackPath":"dev.mysite.com/auth/twitter/callback"、"successRedirect":"dev.mysite.com"、"failureRedirect“ “:” dev.mysite.com/login“,” consumerKey“:”在此指定我的密钥“,” consumerSecret“:”在此指定我的密钥“,” failureFlash“:true}}
(我尝试将其保留为“原样”,这意味着删除dev.mysite.com,并且我还尝试在网址前添加http://)
我的问题是现在如何使它至少对1个(我的)帐户有效
〜3天后解决了问题:我应该注意细节
环回将“ / api /”添加到所有API调用的全局配置中。 否则,它将路径视为路线。
provider.json :
{“ twitter-login”:{“ provider”:“ twitter”,“ authScheme”:“ oauth”,“ module”:“ passport-twitter”,“ callbackURL”:“ / api / auth / twitter / callback”,“ authPath”:“ / api / auth / twitter”,“ callbackPath”:“ / api / auth / twitter / callback”,“ successRedirect”:“ /”,“ failureRedirect”:“ / login”,“ consumerKey”:“ key ”,“ consumerSecret”:“密钥”,“ failureFlash”:true}}
而在客户端,例如,我必须在每个API调用网址中添加“ / api /”
function fetchFollowers() {
const URL = "/api/fetchfollowers";
return fetch(URL, {method: "GET"
})
.then(response=> Promise.all([response, response.json()]));
}
和
<a href="/api/auth/twitter">Add Twitter Account</a>
代替
<a href="/auth/twitter">Add Twitter Account</a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.