Node.js Loopback Framework + Twitter oauth 在实时服务器上不工作

Node.js Loopback Framework + Twitter oauth doesn't work on a live server

我将环回第三方登录护照与 Node-Twitter 库一起用于 api 调用。

我创造了

var client = new Twitter({
  consumer_key: '',
  consumer_secret: '',
  access_token_key: '',
  access_token_secret: ''
});

这是 node-twitter 工作所必需的,我为我的 twitter 帐户手动指定了所有这些凭据,因为我无法从我的 accountIdentity 模型中获取令牌和 tokenSecret。

我有一个 'add twitter account' 按钮,它将用户重定向到 Twitter 授权页面并实施 oauth,然后将用户重定向回该页面(在本地机器上),但在实时服务器上它重定向到 /auth/twitter 然后什么都没有。

我在 twitter api 调用 friends/ids、users/lookup、account/verify_credentials,它们在我的本地机器上工作正常。我希望他们也能在实时服务器上工作,但他们没有。

  1. 在 apps.twitter.com 我的回调 URL 设置为 http://dev.mysite.com/auth/twitter/callback
  2. 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": "my key is specified here", "consumerSecret": "my key is specified here", "failureFlash":真 } }

(我尝试将其保留 "as is",这意味着删除 dev.mysite.com,并且我还尝试在 url 之前添加 http://)

  1. npm 包在服务器上都是最新的

我的问题是现在如何让它至少对 1 个(我的)帐户有效

~3天后解决问题:我应该注意细节

环回将全局配置中的 "/api/" 添加到所有 API 调用。否则,它将路径视为一条路线。

providers.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": "/登录", "consumerKey": "key", "consumerSecret": "key", "failureFlash": 是的 } }

而在客户端,我必须向每个 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>