Как решить socialauth-android (от 3pillarlabs) и Google Accounts/Google+ с помощью OAuth2.0
Я создаю приложение для Android, в котором пользователи должны иметь возможность войти в приложение, используя комбинацию электронной почты и пароля (без затруднений) или через предпочитаемую ими социальную сеть.
Я реализовал socialAuth
библиотека для Android от 3pillarlabs ( найдена на Github) и успешно смогла реализовать код для входа через Facebook и Twitter. Все просто: вы создаете приложение, копируете ключ и секрет в файл свойств вашего проекта Android, добавляете несколько строк кода и бам! Вы можете войти в приложение, используя Facebook или Twitter.
Попытка сделать это с учетными записями Google считается намного более сложной, поскольку руководство, которое они предоставляют, устарело - похоже, что используется OAuth (версия 1), а не OAuth2.0. Мне было трудно понять, как это сделать с OAuth2.0 и socialAuth
библиотека. Я не хочу выполнять столько работы, сколько было предложено на странице Google для реализации входа в приложение с помощью Google+, если при использовании socialAuth
библиотека.
Моя главная проблема заключается в определении consumer_secret
, Когда вы создаете приложение в консоли разработчика Google, вы попадаете на экран, на котором вы активируете соответствующие API, а затем вы устанавливаете разрешения - вы создаете идентификатор клиента OAuth (который является вашим 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
Кто-нибудь реализовал socialAuth
библиотека для Android от 3pillarlabs и разобрался, как войти в свое приложение, используя аккаунты Google или Google+ и OAuth2.0? Где вы берете consumer_secret
?
Что-то, что меня смущает, например, это в документации Google Developer Console относительно настройки OAuth2.0
Настройка OAuth 2.0
Чтобы использовать OAuth 2.0 в своем приложении, вам необходим идентификатор клиента OAuth 2.0, который ваше приложение использует при запросе токена доступа OAuth 2.0. Когда вы регистрируете приложение в консоли разработчиков Google, вы можете сгенерировать идентификатор клиента OAuth 2.0.
Чтобы найти идентификатор клиента вашего приложения и секрет клиента, а также установить URI перенаправления, раскройте раздел "Идентификатор клиента OAuth 2.0".
Чтобы деактивировать идентификатор клиента, удалите приложение из консоли разработчиков.
Как "расширить раздел идентификатора клиента OAuth 2.0"? Вот скриншот этого экрана:
1 ответ
У меня просто была эта проблема, и я разобрался с ней. Перейдите в консоль разработчика и нажмите на следующие 2 вещи:
Файл JSON содержит ваш секрет после ключа "client_secret", а ключ api указан после "client_id". Файл немного сложен для чтения, поэтому скопируйте текст из файла, используя блокнот или что-то еще, и вставьте его здесь: http://jsonviewer.stack.hu/
Он упорядочит информацию для вас, затем нажмите на вкладку "Просмотрщик", и данные будут хорошими и их легко увидеть, например:Это позволило мне работать с socialauth-android, вроде как, но после этого я действительно столкнулся с ошибкой redirect_uri_mismatch, так что позвольте мне знать, столкнетесь ли вы с тем же после.