我正在构建一个 Android 应用程序,用户应该能够使用电子邮件/密码组合(无需考虑)或通过他们喜欢的社交网络登录到应用程序。
我已经从3pillarlabs(在 Github 上找到socialAuth
)实现了Android 库,并且已经成功地实现了通过 Facebook 和 Twitter 登录的代码。很简单:您创建一个应用程序,将密钥和秘密复制到您的 Android 项目的属性文件中,添加几行代码,然后 bam!您可以使用 Facebook 或 Twitter 登录应用程序。
使用Google 帐户尝试此操作被认为要困难得多,因为他们提供的指南已过时 - 它似乎使用 OAuth(版本 1)而不是 OAuth2.0。我很难理解如何使用 OAuth2.0 和socialAuth
库来做到这一点。如果在使用库时它只能是几行,我不想做谷歌页面上建议的使用 Google+ 实现应用程序登录的工作。socialAuth
我的主要问题是识别consumer_secret
. 当您在Google Developer Console上创建应用程序时,您会被定向到激活相关 API 然后设置权限的屏幕 - 您创建一个 OAuth 客户端 ID(这是您consumer_key
在socialAuth
属性文件中的),但是您在哪里可以找到您的consumer_secret
?
我了解到,使用Google+您可以callBack
向您发送身份验证码,但我不明白应该发生什么。
这个解决方案有帮助,但我仍然不知道从哪里获得 consumer_secret(显然是在步骤 1 中创建的):
1. First register your application on Google Cloud console:
a. Go to https://cloud.google.com/console/project
b. Login
c. Create a new project
d. APIs & Auth > Credentials
e. Create New Client ID ( Application Type: Web Application, Authorized redirect URL: http://YOUR_HOST_NAME/socialauth.html)
2. Modify brickred properties.xml
Replace
<prop key="www.google.com.consumer_key">opensource.brickred.com</prop>
<prop key="www.google.com.consumer_secret">YC06FqhmCLWvtBg/O4W/aJfj</prop>
with
<prop key="googleapis.com.consumer_key">CLIENT ID created in Step 1.e above</prop>
<prop key="googleapis.com.consumer_secret">Client Secret created in Step 1.e above </prop>
If you are not using Spring, modify oauth_consumer.properties
Modify the link in your application where the user clicks on to start the contacts import process:
change
?id=google
to
?id=googleplus
有没有人从3pillarlabs实现了socialAuth
Android 库,并想出了如何使用Google Accounts或Google+和OAuth2.0登录到您的应用程序?你从哪里得到的?consumer_secret
让我感到困惑的事情,例如,这是在 Google Developer Console 文档中找到的关于设置 OAuth2.0
设置 OAuth 2.0
要在您的应用程序中使用 OAuth 2.0,您需要一个 OAuth 2.0 客户端 ID,您的应用程序在请求 OAuth 2.0 访问令牌时会使用该 ID。在 Google Developers Console 中注册应用程序时,您可以生成 OAuth 2.0 客户端 ID。
要查找应用程序的客户端 ID 和客户端密码并设置重定向 URI,请展开 OAuth 2.0 客户端 ID 部分。
要停用客户端 ID,请从 Developers Console 中删除应用程序。
您如何“扩展 OAuth 2.0 客户端 ID 部分”?这是此屏幕的屏幕截图: