我一直在尝试使用Google的OAuth在Catalyst应用上进行身份验证。我尝试使用CatalystX::OAuth2和Catalyst::Authentication::Credential::OAuth,但似乎我遇到了配置问题。
我想让它在Google上运行,然后继续使用Facebook
那里有什么好建议吗?我已经用谷歌搜索了死亡,但似乎并没有那么多。
答案 0 :(得分:2)
我意识到这个问题差不多已有2年了,但万一它可以帮助其他人,这里有一些信息来自几周的测试和调试。我还在https://github.com/simonamor/oauth2-client使用CatalystX :: OAuth2发布了一个测试oauth2客户端项目 - 虽然我还没有对令牌做任何事情,例如获取用户个人资料信息和'受保护',但它与Google有效。页面目前已被破坏。这可能足以让你指出正确的方向。
CatalystX :: OAuth2似乎存在一个问题,因为它没有发送范围值,也没有办法让它发送一个,但谷歌的API需要一个。并非所有提供商都有此要求,所以工作正常。在对CatalystX :: OAuth2的本地副本进行了轻微更改后,我设法通过Google进行身份验证。 (次要)更改位于此模块的分支中,也在我的github帐户中。
访问Google开发人员控制台并创建要使用的OAuth2凭据。你下面需要它们。
到我的oauth2client.yml(来自上面引用的github项目)我添加了以下内容:
Plugin::Authentication:
default:
credential:
grant_uri: [provided by google, ends]/o/oauth2/v2/auth
token_uri: [provided by google, ends]/oauth2/v4/token
client_id: [issued by google]
client_secret: [issued by google]
scope: [provided by google, ends]/auth/userinfo.profile
我的声誉不够高,不足以发布两个以上的链接,所以道歉错过了上面的部分网址! 这是我需要设置的唯一真实配置。通过修改凭证设置,我也成功地使用了dropbox.com。
我仍在使用OAuth2服务器端,这些是项目中的默认配置,这就是为什么你需要为Google添加额外部分的原因。
答案 1 :(得分:0)
如果你提供了一些信息,比如你被困的地方以及为什么,我可能会提供帮助。
cpan有一个示例配置。如果你没有使用配置文件,你也可以在Catalyst应用程序中添加它,虽然我建议使用配置文件,只需在示例中粘贴你需要的数据。