域名在 GitHub 调用中被替换为 github.com


http://**XYZ.com**/login/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2F**XYZIP**%3A3000%2Fauth%2Fgithub%2Fcallback&scope=user%3Aemail&client_id=34940ae24cfd171d449a4

当我尝试在 github oauth 应用程序回调网址上使用域名而不是 IP 时,它给了我一个错误......

如果我将其更改为:

http://github.com/login/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2F**XYZIP**%3A3000%2Fauth%2Fgithub%2Fcallback&scope=user%3Aemail&client_id=34940ae24cfd171d449a4

然后它会工作,但由于 oauth 中的回调 URL 不同,它将向我显示不匹配的回调 URL。

基本上我从反应应用程序前端和节点JS后端以及后端的护照 git-hub 调用

我做错了什么?

这是预期行为。当您通过第三方身份验证服务登录时,他们将调用他们的服务并使用会话密钥重定向到您的服务。

所以,发生的事情是。

  • 有一个Login按钮,用户点击它
  • 它重定向到google/github/facebook登录页面,用户在其中输入用户名和密码,然后按登录。
  • 如果用户经过身份验证,它将生成一个会话密钥,并将该会话密钥和其他信息(例如配置文件(发送到您的回调页面。
  • 您的回调会反序列化请求并生成用户会话和配置文件对象等。
  • 当您打开路线护照中间件时,请检查会话是否存在,如果存在,则转到next()否则发送一些错误作为响应。

也许我把问题弄错了,但这是一些普遍的流程。

最新更新