Я реализовал Google SignIn с IdToken на Android, используя com.google.android.gms:play-services-auth
. После того как мой сервер проверил IdToken, я сохраню google-id пользователей в своей базе данных, чтобы подтвердить его при следующем входе в систему.
На странице настроек пользователей я хочу показать пользователю, что Google учетная запись связана с учетной записью моего собственного приложения.
Пока здесь все не работает просто отлично.
Но я также хочу, чтобы пользователь знал, какая именно учетная запись Google, многие люди имеют несколько учетные записи Google (например, работа и c). Теперь проблема в том, что Google-ID малопригоден для пользователя. У меня было две идеи, но обе, кажется, невозможно реализовать:
- создать ссылку на профиль Google, используя идентификатор Google с известной структурой URL (например, https://profile.google.com/this-url-doesnt-exist/google-id
- Используйте get
GoogleSignInClient
с GoogleSignInOptions
, где я могу установить Google-Id аналогично опции setAccountName
. Примерно так:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.setAccountName("HERE WOULD BE SOMETHING CONSTRUCTED FROM THE GOOGLE-ID")
.requestEmail()
.requestIdToken(web_client_id)
.build();
Есть ли способ реализовать что-либо из вышеперечисленного или есть другой вариант? Что я пытаюсь избежать:
- сохраняя имя учетной записи пользователя (обычно адрес электронной почты), это может измениться, и по этой причине я Я использую Google-ID в первую очередь
- , запрашивающий разрешение
android.permission.GET_ACCOUNTS
, но он все равно не будет точным и разрешение на добавление мне не нужно - с пользователем пробуйте каждую учетную запись, пока google-id не совпадет с той, которую я сохранил на своем конце
Любое решение или хитрость приветствуются. Мне просто нужно как-то сообщить пользователю, какая учетная запись Google связана с моей сервис.