问题标签 [passport-twitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
338 浏览

passport.js - 推特应用程序(本地主机和实时站点)的回调 URL 不止一个?

我可以像谷歌应用一样在推特应用中设置多个回调网址吗?我已经通过require('passport-twitter').Strategy; 这个只允许我一个 url 完成了 twitter authentication。我可以将它设置为两个网址,一个用于本地主机,一个用于实时站点,例如

在此处输入图像描述

google允许多个

0 投票
1 回答
356 浏览

javascript - twitter回调在heroku上中断

我在 heroku 上的 twitter 护照有问题,同时它在 localhost 上运行良好。我无法在 heroku 上登录,并且 web 应用程序在回调期间超时。回调期间似乎发生了一些错误。这是网站:

https://nightlife-app-klm.herokuapp.com

路线 > index.js

服务器.js

配置 > 护照

这是heroku的构建成功日志:

这是我运行它然后刷新时的日志:

0 投票
1 回答
175 浏览

javascript - Node.js Loopback Framework + Twitter oauth 在实时服务器上不起作用

我正在使用带有 Node-Twitter 库的 Loopback Third Party Login Passport 进行 api 调用。

我创建了

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

我有一个“添加 twitter 帐户”按钮,它将用户重定向到 Twitter 授权页面并实现 oauth,然后将用户重定向回页面(在本地计算机上)但在实时服务器上它重定向到 /auth/twitter,然后什么也没有.

我进行 twitter api 调用,例如朋友/ID、用户/查找、帐户/verify_credentials,它们在我的本地计算机上工作正常。我希望他们也能在实时服务器上工作,但他们没有。

  1. 在 apps.twitter.com 我的回调 URL 设置为http://dev.mysite.com/auth/twitter/callback
  2. 提供者.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,我还尝试在 url 之前添加 http://)

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

我的问题是如何使它现在至少为 1 个(我的)帐户工作

0 投票
2 回答
1244 浏览

node.js - Express、Create-React-App 和 passport-twitter

我正在我的应用程序上设置 Twitter oauth,方法是在前端create-react-app使用辅助函数 (via ) 来启动后端的 oauth 进程。我目前正在开发中,所以我将我的快速服务器托管在端口上,并将我的前端托管在端口上,前端有一个代理到端口我已经通过npm 包设置了 CORS 权限。axiospassport300130003001.cors

无论我尝试哪组配置,我都无法完成 Twitter OAuth 流程。我尝试过切换端口,保持相同的端口;我试过用express-http-proxy.

我在我的回调函数和我的初始 api 调用中都使用http://127.0.0.1了而不是,尝试了端口和.localhost30003001

我现在不确定自己哪里出错了,或者我是否需要放弃passport-twitter其他解决方案。

在每种情况下,我都会收到以下错误:

根据我尝试的配置,我将 origin 作为nullorhttp://localhost:3001http://127.0.0.1

请注意,由于其他原因(例如连接到Yelp Fusion API. 此外,我正在使用中间件来记录我的会话数据,我可以看到我成功地从 Twitter获取oauth_token和获取。oauth_token_secret调用在 oauth 过程的下一个阶段失败:

这是我的代码的相关部分 -

后端代码

服务器.JS

护照.JS

授权控制器.JS

前端代码

帮助者.JS



更新 我验证了 Passport Authentication 在我的后端端口上工作。我直接在浏览器中调用端点并被重定向到 Twitter 身份验证,然后将新用户返回到我的回调中,新用户保存在我的架构中,该用户保存到会话数据中。

这意味着问题在于在与我的后端不同的端口上使用 Create-React-App。

http://127.0.0.1:3001/auth/twittersuccess

0 投票
2 回答
1517 浏览

node.js - Node.js Passport:Twitter 在身份验证期间未返回用户的电子邮件。

我已向apps.twitter.com请求许可,并且身份验证过程成功运行,但 twitter 没有返回用户的电子邮件。返回所有其他详细信息(id、令牌、用户名、显示名称),但电子邮件仍然为空。

我将在下面发布一些代码作为上下文:

这是我的猫鼬数据库模式:

我的护照.js:

我很想知道我做错了什么,这样我就可以成功返回用户的电子邮件。谢谢

0 投票
1 回答
651 浏览

node.js - Node.js/Passport Twitter 授权返回 302

我正在做一个 POST 请求以通过 Passport Twitter 策略授权 Twitter。如果我使用 Postman,请求会正常进行,但如果我在我的应用程序中使用它会失败。我得到一个 302 作为响应,这在浏览器控制台中

从我在网上阅读的内容中,我发现这302是因为重定向调用的一些错误实现?也许是 twitter 在授权应用程序时所做的,而我没有正确处理它?

代码如下。客户端使用 Vuejs 和 Axios 发送请求。

Vue模板:

Axios 设置:

在我的后端,我正在执行以下操作:

护照设置:

还有我的路由器设置:

0 投票
1 回答
351 浏览

node.js - 如何为 Restful Api 实施 passport.js Twitter 策略?

我正在使用 Node.js 和 MongoDB 制作一个简单的宁静 API。我想使用 Passport.js 的 Twitter 策略。Web 应用程序有大量示例。路由被重定向到 HTML 页面。我不想要这个。我该如何解决我的情况?

0 投票
0 回答
270 浏览

node.js - passport-twitter 返回“加载资源失败:服务器响应状态为 500(内部服务器错误)”

我一直试图解决这个问题,但最终到了这里。这是错误的代码仓库

我收到一条错误消息:

加载资源失败:服务器响应状态为 500(内部服务器错误)`

对于这样的代码片段,它总是重定向到失败的 URL ( /routes/auth.js):

根据当前的提交,我可以成功地从 Twitter API 获取令牌。回调 URL 如下:

http://localhost:3000/auth/twitter/callback?oauth_token=(token)&oauth_verifier=(token)

问题:

  1. 什么地方出了错?
  2. 如果尝试debug出错,我该如何构造错误优先回调(我什至不知道在哪里以及如何输出调试日志)?
0 投票
1 回答
1561 浏览

node.js - 如何在 Passportjs 节点中使登录持久化?

我正在使用护照库来处理用户的登录,但目前面临一个问题。当用户登录时,他们很快就会再次注销,这是一个糟糕的用户体验。

我是否缺少使用户的登录持久化的东西?

下面是我的代码:

一些教程说我应该使用我使用过的护照会话,但没有任何改变:

0 投票
2 回答
617 浏览

javascript - 如何在护照推特策略中使用会话变量 req.user

因为我可以req.user通过传入来获取任何路由中的登录用户:

我想允许用户使用本地登录以外的推特登录,所以我在 node.js API 中有一个护照推特策略。如何使用 req.user 访问本地登录用户?