У меня есть приложение andorid, и я пытаюсь реализовать связанный вход в него. SDK LinkedIn был успешно интегрирован, и я получаю информацию о пользователях вместе с адресом электронной почты.
Вот как мое приложение работает для входа в google:
1) получить токен доступа на мобильных устройствах
2) отправить адрес электронной почты с маркером доступа к серверу
3) получить информацию о пользователях с токеном доступа, полученным через webapi google.
4) если ответное письмо соответствует адресу электронной почты, полученному с мобильного устройства, то проверьте, существует ли учетная запись или нет этого адреса электронной почты. Если не создать учетную запись и войти в другой мудрый логин.
Проблема со связаннымиIn:
Маркер доступа, который я получил, принадлежит мобильному sdk, и я не могу использовать тот же токен для запроса REST API. ( Согласно документации )
Маркер доступа к серверу
Важно отметить, что токены доступа, которые были приобретены с помощью Mobile SDK, применимы только к Mobile SDK и не могут использоваться для выполнения вызовов API REST на стороне сервера.
Аналогично, токены доступа, которые вы уже сохранили от ваших пользователей, которые прошли проверку подлинности с помощью API-интерфейса REST API на стороне сервера, не будут работать с Mobile SDK.
Итак, как проверить данные на шаге 3), упомянутые выше на моем веб-сервере?
Это катастрофа? Я уверен, что должен быть способ сделать то, что я пытаюсь сделать, поскольку есть много приложений, которые позволяют своим пользователям входить в систему через linkedin в своих мобильных приложениях.
Потому что, если это невозможно, любой пользователь может легко изменить адрес электронной почты, который мобильное приложение отправляет на веб-сервер после получения от linkedin, и я могу войти в систему с любым адресом электронной почты, который я хочу, выполнив это.
Как вы сказали, вы не можете этого сделать.
Вместо этого вы должны использовать другой подход, получить необходимую информацию на устройстве, вернуть LinkedIn и отправить его на свой сервер. Используйте HTTP-соединения, чтобы избежать атак MITM .
Если приложение загружено с официальной информации, не следует изменять на устройстве.
ДРУГИЕ МЕХАНИЗМЫ БЕЗОПАСНОСТИ: Если вам нужна дополнительная безопасность, вы можете, например, зашифровать данные на сервере, отправить HASH на мобильный, использовать токен LinkedIn для получения информации, а с помощью другого алгоритма сравнить полученные данные.
Но я думаю, что это слишком дорогостоящий механизм, который должен быть разрешен только с использованием HTTPS-соединений, а не для загрузки APK из неофициальных магазинов.
В документах четко указано, что вы не можете использовать AccessToken, полученный из Android SDK, чтобы создавать свои собственные вызовы API REST.
Однако есть способ сделать вызовы REST API с помощью мобильного SDK, проверьте
Аутентифицированный API REST отсюда: https://developer.linkedin.com/docs/android-sdk
Если вы хотите получить информацию о профиле пользователя, вам нужно будет сделать это с помощью мобильного SDK.