gpt4 book ai didi

node.js - 无法使用 ExpressJS 与 oauth2orize 提供程序保持持久登录

转载 作者:搜寻专家 更新时间:2023-10-31 23:39:12 25 4
gpt4 key购买 nike

我正在创建一个应用程序,该应用程序将使用 OAuth2 协议(protocol)提供身份验证,以使用该应用程序的策略为已知客户端提供服务。

我尝试同时使用 oauth2orize , 和 node-oauth2-provider模块,我不断得到相同的观点:

  1. 用户通过客户端登录,api keyapi secret通过验证,用户可以通过我的提供商应用成功登录。
  2. 在客户端应用程序和用户成功验证后, token 被发送回客户端应用程序(用户已登录客户端 - 耶!),但用户立即在 Provider 上注销。应用程序。我无法弄清楚发生这种情况的地点和原因 - 这是 OAuth2 协议(protocol)的一项功能吗?

这正常吗?如果我使用 Facebook 作为一种策略(想想 passport-facebook ),那么如果我使用 Facebook 登录任何应用程序,当我被重定向回该应用程序时,我仍然登录到 Facebook - 这是我想为访问我的应用程序的客户提供的行为。

这两个提供程序模块都能很好地完成我正在寻找的 90%,但在它们的示例中都没有提供“持久”登录,oauth2orize , 和 node-oauth2-provider .我错过了什么吗?

最佳答案

嗯,我想我明白了。

我在 localhost 上运行客户端和服务器,使用不同的端口 - 并且 cookies/session 相互覆盖。

因此,如果 client express 应用程序在 http://localhost:3000 上运行并且 oauth 提供程序在 http://localhost:3001 上运行,则登录到 oauth提供者并在客户端上创建 session 会覆盖提供者上的 session 。

解决方案(目前):

# /etc/hosts
127.0.0.1 dev.client.com
127.0.0.1 dev.oauth-provider.com

登录http://dev.client.com:3000带我到http://dev.oauth-provider.com:3001当用户成功登录并在客户端创建 session 时,提供者仍处于登录状态。

关于node.js - 无法使用 ExpressJS 与 oauth2orize 提供程序保持持久登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13671346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com