Подписание Google в приложении Android для использования бэкэнд Cloud Endpoints

Я пишу Android-приложение с бэкэндом Google Cloud Endpoints, и я хочу ограничить свой бэкэнд приложением Google.

Я следил за инструкциями Android и успешно вошел в систему. Другими словами, я получил токен, который затем могу передать на сервер и проверить его имя. Отлично.

Тем не менее, я пропускаю большую картину здесь. Вопросов:

  1. Должен ли я отправлять этот токен с каждым запросом на сервер и повторять процесс проверки его в каждом запросе?
  2. Если да, токен истекает в какой-то момент (1 час я считаю). Я полагаю, что пользователю не нужно снова входить в систему, должно быть, чтобы избежать этого, не так ли?
  3. Является ли способ обновить токен (я думаю, что Google Signin – OAuth2)?
  4. И самое главное, все это стандартный способ, которым кто-то использует подпись Google для защиты своего бэкэнда? Я ожидал, что это будет очень простой процесс, поскольку я использую только продукты Google. Тем не менее, я обнаружил себя потерянным на страницах и страницах документации на Android и Cloud Enpoints с кусочками головоломки.

Любая помощь или проницательность оценены.

Я не использовал проверку подлинности на Android, но google использует outh2 для всей своей аутентификации. SDK Google могут помочь вам облегчить часть боли при использовании oauth2. Чтобы ответить на ваши вопросы

  1. Да. Вы находитесь в мире аутентификации на токенах, и вы отправляете токен с каждым запросом.
  2. Да. Токен истекает через час. Чтобы обойти это, когда вы сначала выполняете аутентификацию oauth2, вы также получаете токен обновления. Когда токен пользователя истекает, вы используете токен обновления, чтобы получить новый токен. Этот токен обновления можно сохранить на стороне клиента. Клиент будет обнаруживать во время одного из своих запросов, что существующий токен истек, и будет запрашивать новый токен, используя токен обновления
  3. Да, вы используете URL-адрес токена обновления google, чтобы использовать токен обновления и получить новый токен. Я привел важные URL-адреса google ниже.
  4. Это действительно процесс мой друг.

Поскольку вы используете конечную точку облака, я считаю, что вы будете делать конечные точки аутентификации.

Обычно вы делаете следующие конечные точки при аутентификации oauth2 с помощью поставщика услуг (google, facebook, github и т. Д.):

https://webiste.com/auth/signin/{provider} https://webiste.com/auth/callback/{provider} https://webiste.com/auth/refresh/{provider} 

Ниже перечислены URL-адреса google для oauth2, которые вы используете:

 oauth_url: 'https://accounts.google.com/o/oauth2/v2/auth', //start auth token_url: 'https://accounts.google.com/o/oauth2/token', //get id_token, access_token, refresh_token token refresh_token_url : 'https://www.googleapis.com/oauth2/v4/token', token_info_url: 'https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=', //validate token 

Вы также хотели бы просмотреть документацию oauth2 Google на странице https://developers.google.com/identity/protocols/OAuth2 .

Я думаю, вы должны использовать библиотеку Android Firebase для аутентификации. Он предоставляет вам настройки Google, Facebook, электронной почты, Twitter и Github, и хорошая часть состоит в том, что это можно сделать, написав только несколько строк кода. Для получения дополнительной информации нажмите здесь .

Лучше всего использовать 3-сторонний код для этого. Это займет гораздо меньше времени, будет иметь гораздо меньше ошибок и будет очень легко перейти к другим методам позже. Я бы порекомендовал Firebase, потому что это очень просто, бесплатно, хорошо работает и принадлежит Google.