我正在创建一个应用程序,它将使用OAuth2协议提供身份验证,使用该应用的策略为已知的客户端提供服务。
我尝试过同时使用oauth2orize和node-oauth2-provider模块,并不断地达到相同的目的:
Provider应用程序中。我不知道在哪里,为什么会发生这种情况--这是OAuth2协议的一个特性吗?这是正常的吗?如果我把Facebook作为一种策略(想想看passport-facebook),那么如果我登录到任何使用Facebook的应用程序,当我被重定向回应用程序时,我仍然会登录Facebook --是我想让客户访问我的应用程序的行为。
这两个提供程序模块都很擅长完成我所寻找的90%的功能,但它们都没有在它们的示例oauth2orize和节点-OAuth2-提供程序中提供“持久”登录。我是不是遗漏了什么?
发布于 2012-12-03 20:13:43
嗯,我想我明白了。
我在localhost上运行客户机和服务器,使用不同的端口--而cookie/会话正在相互覆盖。
因此,如果client应用程序运行在http://localhost:3000上,而oauth运行在http://localhost:3001上,则登录oauth并在客户机上创建会话将覆盖提供者上的会话。
解决方案(目前):
# /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,当用户成功登录并在客户端上创建会话时,提供者仍将登录。
https://stackoverflow.com/questions/13671346
复制相似问题