我一直在尝试在Catalyst应用程序上使用谷歌的OAuth进行身份验证。我尝试过使用CatalystX::OAuth2和Catalyst::Authentication::Credential::OAuth,但似乎在配置上遇到了问题。
我想让它在谷歌上工作,然后再去Facebook
有什么好的建议吗?我用谷歌搜索了一下死亡信息,但似乎并不多。
发布于 2016-08-23 14:27:59
我意识到这个问题已经有两年的历史了,但为了防止它对其他人有帮助,这里有一些从几周的测试和调试中获得的信息。我还在https://github.com/simonamor/oauth2-client上使用CatalystX::OAuth2发布了一个测试oauth2客户端项目-它在某种程度上可以与谷歌一起工作,尽管我还没有对令牌做任何事情,比如获取用户配置文件信息,并且'protected‘页面目前被破坏了。不过,这可能足以为您指明正确的方向。
CatalystX::OAuth2似乎有一个问题,它没有发送作用域的值,我也找不到一种方法让它发送一个作用域的值,但是Google的API需要一个作用域。并不是所有的提供商都有这个要求,所以可以正常工作。在对CatalystX::OAuth2的本地副本稍作修改后,我设法让它通过Google进行身份验证。(小)更改在这个模块的分支中,也在我的github帐户中。
访问谷歌开发人员控制台并创建要使用的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
我没有足够高的声誉来发布超过两个链接,所以很抱歉错过了上面的urls的一部分!这是我需要设置的唯一真正的配置。通过修改凭证设置,我也成功地将其用于dropbox.com。
我还在做OAuth2服务器方面的工作,这些都是项目中的默认配置,这就是为什么你需要为谷歌添加一个额外的部分。
发布于 2014-11-08 20:24:53
如果你提供了一些信息,比如你被困在哪里以及为什么,我也许能帮上忙。
cpan有一个示例配置。如果您没有使用配置文件,您也可以将其添加到您的Catalyst应用程序中,尽管我建议使用配置文件,只需在示例中粘贴您特别需要的数据即可。
https://stackoverflow.com/questions/26543850
复制