Некоторые социальные сети позволяют делегировать аутентификацию пользователя или требовать учетные данные в вашей собственной системе. Когда пользователь входит в систему, внешняя платформа предоставит вам токен доступа, который можно использовать для получения некоторой информации пользователя.
Используйте эти данные, чтобы зарегистрировать пользователя в своей системе. Прикрепите также предоставленный токен доступа. В зависимости от разрешений, которые вы запросили, вы можете использовать токен для выполнения дополнительной операции в социальной платформе.
Затем введите JWT, который будет использоваться в качестве аутентификационного токена в веб-приложении, где пользователь зарегистрировался. Обратите внимание, что этот JWT должен быть независим от маркера доступа, отправленного поставщиком проверки подлинности. Включите некоторые претензии, представляющие интерес, такие как sub
или exp
и подпишите его секретным ключом. Например
{
"sub": "userid", //unique user id assigned in your system
"name": "User name" //Name provided by social
"iss": "issuer", //you are the issuer
"exp": 1300819380, //Expiration date
"login":"facebook" //login method used
}
Если вы планируете использовать несколько систем аутентификации, такие как Google или Facebook, не используйте электронную почту в качестве уникального идентификатора, так как он может отличаться для одного пользователя. Для связывания учетных записей, которые пользователь имеет в разных сетях, вам понадобится дополнительный процесс регистрации. Например, чтобы пользователь установил идентификатор, который используется в другой системе, или просто запустил процесс регистрации в Твиттере, когда пользователь зарегистрировался на Facebook
Социальный вход - это только подтверждение того, кто аутентифицирован. У вас все равно будет запись пользователя в вашем db для этого конкретного пользователя. Поэтому после входа в систему вы создадите JWT так же, как всегда. На какой платформе вы беспокоитесь о том, что не будете отправлять адрес электронной почты? Почти каждая служба также будет иметь некоторый тип идентификатора пользователя, поэтому ваша таблица пользователя может иметь такие поля, как 'facebook_id'' twitter_id' и т. Д. ... – Pitchinnate
Большинство социальных платформ предоставляет вам адрес электронной почты (за исключением Twitter, который я считаю). Я предполагаю, что вы можете сделать перенаправление к вашему приложению после успешной поездки в веб-объект. –
@logeeks вы нашли ответ на свой вопрос? –