Что хранить на сервере для авторизации через VK/Facebook/etc?
Есть фронтенд на AngularJS, в котором пользователь может авторизоваться через социальные сети (с помощью hello.js).
1. Сначала проходит авторизация/аутентификация в соцсети. Соцсеть возвращает токен.
2. Пользователь проходит авторизацию на сайте (через смс-подтверждение).
3. Токен и ID юзера в соцсети сохраняются в базе.
4. В следующий раз при заходе и аутентификации в соцсети, возвращённый токен сверяется с записью в базе, чтобы вытянуть привязанного пользователя.
Но токен не совпадает. Я явно что-то делаю не так :)
Как мне опознать вернувшегося пользователя, чтобы не заставлять его снова проходить авторизацию на сайте?
Но ИД пользователя же публичная информация. То есть злоумышленник может отправить ИД пользователя и получить по нему авторизацию. Обновлять токен где и откуда? На сервере из нового запроса пользователя? В этом тоже нет смысла. Что-то не догоняю. Можно чуть подробнее?
https://vk.com/dev/auth_sites
Запрашиваете код, потом с этим кодом идёте в вк, и именно вк возвратит ид пользователя и его токен. Пользователь только код даёт для получения токена. Т.е. никакой подмены быть не может.