Как правильно реализовать логин connectedIn?

У меня есть приложение andorid, и я пытаюсь реализовать в нем логин connectedIn. LinkedIn SDK был успешно интегрирован, и я также получаю информацию о пользователе вместе с адресом электронной почты.

Вот как мое приложение работает для входа в Google:

1) получить токен доступа на мобильном телефоне

2) отправить адрес электронной почты с токеном доступа на сервер

3) получить сведения о пользователях с токенами доступа, которые я получил через веб-интерфейс Google.

4) если ответное электронное письмо совпадает с электронным письмом, полученным с мобильного устройства, проверьте, существует ли учетная запись для этого адреса электронной почты. Если нет, создайте учетную запись и войдите в другой логин.


Проблема с connectedIn:

Полученный мной токен доступа принадлежит мобильному SDK, и я не могу использовать тот же токен для выполнения запроса REST API. (согласно документации)

Мобильные и серверные токены доступа

Важно отметить, что токены доступа, полученные с помощью Mobile SDK, можно использовать только с Mobile SDK и не могут использоваться для вызовов REST API на стороне сервера.

Точно так же токены доступа, которые вы уже сохранили от пользователей, прошедших аутентификацию с помощью вызова REST API на стороне сервера, не будут работать с Mobile SDK.

Итак, как проверить детали на шаге 3), упомянутом выше, на моем веб-сервере?


Это катастрофа? Я уверен, что должен быть способ делать то, что я пытаюсь сделать, поскольку существует множество приложений, которые позволяют своим пользователям входить в систему через linkedin в своих мобильных приложениях.

Потому что, если это невозможно, любой может легко изменить адрес электронной почты, который мобильное приложение отправляет на веб-сервер после получения от linkedin, и я могу войти в систему с любым адресом электронной почты, который захочу, сделав это.


person Varun Verma    schedule 17.04.2016    source источник


Ответы (2)


Как вы сказали, вы не можете этого сделать.

Вместо этого вам нужно использовать другой подход, получить необходимую информацию на устройстве, возвращенную LinkedIn и отправить ее на свой сервер. Используйте HTTP-соединения, чтобы избежать атак MITM.

Если ваше приложение загружено из официальной информации, не следует изменять его на устройстве.

ДРУГИЕ МЕХАНИЗМЫ БЕЗОПАСНОСТИ. Если вам нужна дополнительная безопасность, вы можете, например, зашифровать данные на сервере, отправить HASH на мобильный телефон, использовать свой токен LinkedIn для просмотра информации и сравнить с другим алгоритмом. полученные данные совпадают.

Но я думаю, что это слишком дорогостоящий механизм, который следует решать только с использованием HTTPS-соединений, а не загрузки APK из неофициальных магазинов.

person Gustavo Morales    schedule 21.04.2016
comment
извините, но ничто из этого на самом деле не поможет. - person Varun Verma; 27.04.2016
comment
таким образом можно изменить даже запутанный APK из Google Play - person Blackhex; 09.12.2016

В документации четко указано, что вы не можете использовать AccessToken, полученный из Android SDK, для выполнения собственных вызовов REST API.

Однако есть способ выполнять вызовы REST API с помощью мобильного SDK, проверьте Создание

Аутентифицированные вызовы REST API отсюда: https://developer.linkedin.com/docs/android-sdk < / а>

Если вы хотите получить информацию о профиле пользователя, вам придется сделать это с помощью мобильного SDK.

person Mina Wissa    schedule 27.04.2016
comment
В основном я хочу проверить, что электронное письмо, которое я получил от них, мобильный телефон вместе с токеном. Фактически принадлежат пользователю, токен которого был предоставлен мне. В этом сценарии я предоставляю возможность единого входа через linkedin. - person Varun Verma; 27.04.2016
comment
В этом случае я считаю, что вам придется реализовать аутентификацию пользователя через свои API, что заставит пользователя отправить вам свое имя пользователя и пароль. Это добавит бремени к вашей реализации, так как вам нужно будет защитить соединение между пользователем и вашим сервером. - person Mina Wissa; 27.04.2016