У меня есть веб-сайт с собственным механизмом входа / регистрации (таблицы БД PHP, сессии, пользователя и user_profile с именем пользователя и паролем и т. Д.). Давайте назовем это счетом ABC.
Я только что завершил интеграцию входа в Твиттер с помощью Oauth, доступного в виде кнопки «регистрация через Твиттер» над моей обычной формой входа.
Так что теперь у меня есть такой сценарий:
Пользователь входит в систему через Twitter. Поскольку Twitter, в отличие от Facebook, не предоставляет доступа к адресу электронной почты пользователя, я не знаю, является ли этот человек, вошедший в систему через Twitter, существующим пользователем (в моей таблице пользователей) или нет. Поэтому я создаю для них новую учетную запись (назовем это учетной записью «Твиттер») и предлагаю им объединиться с существующей учетной записью «ABC» путем ввода их учетных данных «ABC». Если они это делают и все совпадает, я сохраняю их имя пользователя, идентификатор и токен в твиттере в записи БД для их учетной записи ABC. В следующий раз, когда они войдут в систему через Twitter, я знаю, кто они с точки зрения учетной записи ABC (то есть учетные записи «объединены»), и все хорошо!
Кроме того, я бы хотел, чтобы мой сайт отправлял твиты от их имени, что в основном означает, что мне нужно авторизованное соединение Twitter, которое у меня есть, только если они входят через кнопку Twitter, а не через учетную запись ABC , Причина в том, что с последним у меня есть их token_secret, полученный от обратного вызова Twitter API после подписания, а с первым - нет. Моей первой мыслью было, конечно, сохранить token_secret в моей БД (с учетной записью ABC), чтобы снять это ограничение, однако кажется, что это эквивалент пароля, и его сохранение может быть дырой в секретности?
Чтобы свести это к вопросу: является ли "стандартной" практикой хранение секрета oauth-токена в БД для достижения того, что я пытаюсь сделать (что само по себе кажется довольно стандартной функцией для современного сайта)? , Если нет, какова альтернативная реализация?
Обновление: глядя на: Лучшие практики - хранить учетные данные Twitter или нет? кажется, что это определенно не"лучшая практика". Но похоже, что я пытаюсь достичь ... не знаю, как реализовать? Может быть, какое-то решение на основе файлов cookie *
Peter
ps - Кстати, если у кого-то есть лучший способ сделать «слияние» учетной записи, я описал, что я тоже буду открыт, услышав об этом. Я выполнил поиск в Google, но действительно не смог найти что-то слишком полезное, хотя, наверное, эта проблема решалась много раз ??? Насколько я понимаю, в случае с Facebook электронная почта может использоваться для «уникальной» идентификации пользователя (то есть сопоставления его с учетной записью ABC) и выполнения слияния без запроса (хотя я даже не уверен, что это абсолютно безопасно? ).