Необходимо реализовать авторизацию в андроид приложении через VK в связке через Firebase без использования собственного сервера. Поиск советует сделать через https://auth0.com/ сервис, но непонятно каким образом? Кто-нибудь реализовывал данную схему, как?
Отслеживать
5,920 3 3 золотых знака 22 22 серебряных знака 43 43 бронзовых знака
задан 18 мая 2017 в 12:17
109 1 1 серебряный знак 4 4 бронзовых знака
Подскажите, есть ли решение?
25 окт 2017 в 21:05
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
UPD: код, указанный ниже, был использован с VK SDK ~1.6.7. Код с использованием текущей версии SDK(2.0.0+) может во многом отличаться от приведенного в примере — в частности, потому, что класс VKAccessToken был переписан и поля email теперь предположительно нет в открытом доступе. Однако решение есть: https://github.com/VKCOM/vk-android-sdk/issues/399
В виду того, что прошло достаточно много времени, а предложений не наблюдается, поделюсь своим видением решения данного вопроса (на самом деле, похоже на простенький «хак» и занимает на 5-10 строк больше, чем «чистая» авторизация с Firebase).
Swift 4 Firebase — Как добавить регистрацию пользователей через Firebase — Firebase authentication
А именно, sample Activity, из которого будет видно, что вместо того, чтобы пытаться синхронизировать оба сервиса на некоем высоком уровне, мы просто посылаем credentials ВК-юзера на сервер Firebase в виде связки email-password, добавляя щепотку соли в виде префикса «vk» (или чего по вкусу) в поле password и того же незахешированного префикса, например, в поле email для последующей идентификации провайдера в списке Firebase-юзеров.
По идее, подобный механизм будет работать в связке с применением любого не-дефолтного по версии Firebase сервиса, который предоставляет собственный механизм аутентификации и, как результат, сессионные данные пользователя.
Плюс такого решения в том, что в Firebase-password, который нужно передать для успешного использования ВК-креденшлов и который лично мне, например, ну совсем не нужен для личных целей, а нужен исключительно для определения identity этого и только этого ВК-юзера, можно запихнуть любую информацию по вкусу и которую только можно вытянуть из VKAccessToken (в случае данного конкретного провайдера).
Вот как это может выглядеть с использованием vk android sdk — ведь, как я предполагаю, именно этот инструмент имелся в виду при создании вопроса(код на Kotlin, по запросу могу переписать на Java):
Естественно, для того, чтобы эта связка работала, необходимо включить Способ входа «Адрес электронной почты и пароль» в Firebase Auth — консоли. После включения я, например, дефолтных поднастроек не менял — все работает, как есть.
UPD: добавил немного кода для большей наглядности процессов создания новых, определения уже существующих Firebase’овских аккаунтов и ошибок, которые могут возникать в процессе комплексного запроса.
Источник: ru.stackoverflow.com
Firebase #1. Вход и регистрация в приложении.
Firebase обновить запись пользователя
С помощью Firebase.auth () как обновить / повторно загрузить пользователя, если состояние аутентификации не изменилось?
У меня есть пользователь, который аутентифицирован по номеру телефона. Я отправляю ссылку для подтверждения по электронной почте пользователю, который нажимает на нее. Ссылка проверяет адрес электронной почты пользователя (обновляет запись) и показывает кнопку «продолжить», которая ведет обратно в приложение (через deeplink). Вернувшись в приложение, я хочу повторно растянуть запись пользователя из Firebase, чтобы увидеть, подтвержден ли адрес электронной почты пользователя. Как я могу это сделать?
Ben 31 Окт 2020 в 01:12
2 ответа
Лучший ответ
На объекте User, который вы получаете от наблюдателя состояния аутентификации, вы может вызвать свой метод reload ().
Doug Stevenson 30 Окт 2020 в 22:19
обновите данные пользователя
reload ( ) : Promise
Обновляет текущего пользователя, если он вошел в систему.
Источник: question-it.com
Как реализовать аутентификацию в android приложение с бекэндом на firebase с помощью вк?
Здравствуйте. Пишу приложение на andoid + firebase в котором должна быть аутентификация пользователей с помощью почты и пароля, фейсбука и вконтакте. Для первых двух встроено в файербайс, а вот с вк не понятно, в гугле все как то не внятно, ничего конкретного я не нашел. Подскажите как это можно сделать или где почитать.
И хотелось бы чтоб один пользователь мог входить на свой аккаунт разными способами. Допустим через вк и фейсбук, если почта одна. Что в этом случае должно быть с почтой и паролем? допустим вначале пользователь зарегался через почту и пароль, а потом если он хочет войти с помощью вк, где почта та же, как сделать чтобы попасть на профиль этого пользователя. и если вначале пользователь зашел через вк, а потом хочет регаться e-mail и пароль с той же почтой, то он должен попасть на профиль на который заходил с помощью соц сети или регистрация должна зафейлиться? мне кажется что должна зайфейлится или предоставить дополнительные способы верефикации. Или вообще разграничить вход через соцсети(если почта одна, то входят на один аккаунт) и почтой и паролем, и одно другое исключает, то есть если почта была использована в одном случае, то второй фейлится с этой почтой. В общем как решают эти вопросы матерые прогеры и/или где об этом можно почитать?
- Вопрос задан более трёх лет назад
- 1191 просмотр
2 комментария
Средний 2 комментария
Источник: qna.habr.com