Интеграция входа в Twitter с существующим веб-сайтом: объединение учетных записей и сохранение учетных данных Twitter - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть веб-сайт с собственным механизмом входа / регистрации (таблицы БД 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) и выполнения слияния без запроса (хотя я даже не уверен, что это абсолютно безопасно? ).

1 Ответ

1 голос
/ 04 мая 2011

Хранение токенов, которые Твиттер дает вам во время процесса OAuth, - именно то, как вы должны это делать. Засунь их в БД.

...