如何使用OAuth2.0解决socialauth-android(3pillarlabs)和Google Accounts / Google +

时间:2014-02-26 10:19:47

标签: android oauth-2.0 google-oauth socialauth

我正在构建一个Android应用程序,用户应该可以使用电子邮件/密码组合(无需支持)或通过其首选的社交网络登录应用程序。

我已经从 3pillarlabs found on Github)实施了适用于Android的socialAuth库,并且已经成功实现了通过Facebook和Twitter登录的代码。这很简单:你创建一个应用程序,将密钥和秘密复制到Android项目的属性文件中,添加几行代码和bam!您可以使用Facebook或Twitter登录该应用程序。

尝试使用 Google帐户,因为the guide they provide已过期而被视为更加困难 - 它似乎使用OAuth(版本1)而不是OAuth2.0。我很难通过OAuth2.0和socialAuth库来了解如何执行此操作。如果在使用socialAuth库时只能使用几行,我不想像在implementing application sign in with Google+的Google页面上那样做很多工作。

我的主要问题是确定consumer_secret。当您在 Google Developer Console 上创建应用程序时,系统会将您定向到激活相关API的屏幕,然后设置权限 - 您创建OAuth客户端ID(这是您的consumer_keysocialAuth属性文件中),但您在哪里找到了consumer_secret

我已经了解到使用 Google + ,您可以使用某种callBack向您发送验证码,但我不明白它应该发生什么。

This solution helps,但我仍然不知道从哪里获取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 实施了适用于Android的socialAuth库,并找出了如何使用 Google帐户 Google + OAuth2.0 ?你在哪里得到consumer_secret

让我感到困惑的是,例如Google Developer Console上有关Setting up OAuth2.0

的文档
  

设置OAuth 2.0

     

要在您的应用程序中使用OAuth 2.0,您需要OAuth 2.0客户端ID,   您的应用程序在请求OAuth 2.0访问令牌时使用的。   当您在Google Developers Console中注册应用程序时   可以生成OAuth 2.0客户端ID。

     

要查找应用程序的客户端ID和客户端密钥,请设置   重定向URI,展开OAuth 2.0客户端ID部分。

     

要停用客户端ID,请从中删除该应用程序   开发人员控制台。

如何“展开OAuth 2.0客户端ID部分”?以下是此屏幕的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

我刚刚遇到这个问题,只是想出来了。转到开发人员控制台,然后单击以下两项内容: enter image description here

JSON文件包含您的密钥,在密钥&#34; client_secret&#34;之后,api密钥列在&#34; client_id&#34;之后。该文件有点难以阅读,因此使用记事本或其他东西将文本复制出文件并将其粘贴到此处: http://jsonviewer.stack.hu/

它会为您整理信息,然后点击查看器&#39;选项卡和数据将很好,很容易看到,如下所示: enter image description here 这样做可以帮助我使用socialauth-android,但是之后我实际上遇到了redirect_uri_mismatch错误,因此知道你之后是否遇到过同样的问题。