我正在使用带有node-twitter库的loopback第三方登录护照进行API调用。
我已经创建了
var client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
这是Neccessary的Node-Twitter工作,我为Twitter帐户手动指定了所有这些凭据,因为我无法从我的帐户识别模型中获取令牌和令牌。
我已经有一个"添加Twitter帐户"按钮,该按钮将用户重定向到Twitter授权页面并实现Oauth,然后将用户重定向到页面(在本地计算机上),但是在实时服务器上,它将其重定向到/auth/twitter然后什么都没有。
我将诸如朋友/ID,用户/查找,account/verify_credentials之类的Twitter API调用,它们在我的本地计算机上可以正常工作。我希望他们也可以在实时服务器上工作,但没有。
- 在apps.twitter.com上,我的回调URL设置为http://dev.mysite.com/auth/twitter/callback
提供者.json
{ " Twitter-login":{ "提供者":" Twitter", " authscheme":" oauth", "模块":" Passport-Twitter", " callbackurl":" dev.mysite.com/auth/twitter/callback", " authpath":" dev.mysite.com/auth/twitter", " callbackpath":" dev.mysite.com/auth/twitter/callback", " Scuccessredirect":" Dev.mysite.com", " failureredirect":" dev.mysite.com/login", "消费者":"我的钥匙在这里指定", " commuterSecret":"我的密钥在这里指定", "失败Flash":是的}}
(我尝试将其"按原样"保留,这意味着删除dev.mysite.com,我也尝试添加http://url之前添加http://)
- NPM软件包都是服务器上最新的
我的问题是如何使其至少在1(我的)帐户中
〜3天后解决了问题:我应该关注细节
环回添加"/api/" 在所有API调用中。否则,它将路径视为路线。
提供者.json :
{ " Twitter-login":{ "提供者":" Twitter", " authscheme":" oauth", "模块":" Passport-Twitter", " callbackurl":"/api/auth/twitter/callback", " authpath":"/api/auth/twitter", " callbackpath":"/api/auth/twitter/callback", "连续的":"/", " failureredirect":"/登录", "消费者":"键", " commuterSecret":"键", "失败Flash":是的}}
在客户端,我必须在每个API调用URL中添加"/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>