Я пытался добавить Google Sign-In в Android, но у меня есть пара сомнений.
Из документации Android Интегрируем гугл, войдите в Android
В части аутентификации на стороне сервера требуется Client Id
, то есть веб-приложение OAuth 2.0 client ID
для вашего внутреннего сервера.
Из документации Android:
Получите идентификатор клиента OAuth 2.0 вашего внутреннего сервера.
Если ваше приложение проходит проверку подлинности с помощью внутреннего сервера или обращается к API Google с вашего внутреннего сервера, вы должны получить идентификатор клиента OAuth 2.0, созданный для вашего сервера. Чтобы найти идентификатор клиента OAuth 2.0
Из моего понимания поток будет:
- Android-приложение получит от Google
auth code
, которое будет передано бэкэнду.
- Бэкенд получит
access token
с auth code
из приложения для Android и client secret
.
- С помощью
acess token
мы получаем информацию о пользователе, а access token
сохраняется в базе данных.
Мои сомнения:
- Я где-то читал в StackOverflow, что нам нужно создать два клиента OAuth, один для Android и один для веб-приложения. Это правда?
- Для входа в Django Rest Auth View необходимо указать один
redirect_url
, но я не понимаю, что будет redirect_uri
в случае устройства Android, или нам нужно пропустить этот URL при получении auth code
от Google.
- На OAuth Playground я положил
client id
и client secret
своего бэкэнда и получил auth code
, и когда я передал это auth code
в свой вид входа в систему, я получил redirect_uri_mismatch
, но если я поставил redirect_url = 'developer.google.com'
Это работает, я думаю, auth code
содержит информацию о хосте, откуда она генерируется, поэтому она должна быть такой же, как redirect_url
в моем представлении rest-auth, но тогда для android, что это должно быть?
Вот мой Google Login View.
class GoogleLogin(SocialLoginView):
adapter_class = GoogleOAuth2Adapter
client_class = OAuth2Client
callback_url = 'localhost:8000' # What this should be?
Пожалуйста, запросите дополнительную информацию, если я забыл поставить любую.
Я использую это
django-rest-auth
Полезная ссылка -