Автоматическая авторизация веб-приложения Twitter

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

Разве это не может работать так, что, если он был предоставлен один раз, им не нужно было продолжать предоставлять доступ? Поэтому убираем шаг. Я использую шаги, найденные в:

http://net.tutsplus.com/tutorials/php/how-to-authenticate-users-with-twitter-oauth/

Спасибо за любой отзыв!


person David    schedule 11.05.2011    source источник


Ответы (3)


Я нашел ответ после разговора с некоторыми разработчиками на twitterapi irc.

По сути, я собирался https://twitter.com/oauth/authorize со всем своим oauth, мне нужно было пойти на https://twitter.com/oauth/authenticate. Это тогда дает навсегда авторизацию.

person David    schedule 11.05.2011

Когда пользователи подключаются, вы получаете токен доступа и секретный токен, которые используются каждый раз, когда вы запрашиваете что-либо у Twitter API.

Если вы не хотите, чтобы ваши пользователи оставались на связи с твиттером, вам нужно только сохранить в базе данных эти два токена. (Они зависят от пользователя, не используйте один токен для каждого пользователя). Когда вы знаете эти токены, вам не нужно просить пользователя предоставить доступ, вы можете напрямую использовать их для вызова API.

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

person glacasa    schedule 11.05.2011
comment
Опять же, см. мой комментарий к другому ответу. Пользователь вообще не авторизовался на моем сайте. Я хочу, чтобы они нажали «твиттер», и если они уже авторизовали мое приложение со своей учетной записью в твиттере, то войдите в систему. - person David; 11.05.2011
comment
Хорошо, я лучше понимаю вашу проблему. Извините, я недостаточно знаю API твиттера, чтобы ответить на этот вопрос (на самом деле, я думал, что твиттер сделает это автоматически) - person glacasa; 11.05.2011

Вам нужно запустить токен / секрет токена, который вы получаете в базе данных или другом методе долгосрочного хранения. Затем вы передаете его в объект, который выполняет аутентификацию OAuth, поэтому вам не нужно постоянно спрашивать своего пользователя. С помощью PHP вы можете хранить их в базе данных MySQL или аналогичной и загружать их в $_SESSION, когда пользователь входит в систему для передачи значений.

person onteria_    schedule 11.05.2011
comment
Простите меня, если я ошибаюсь, но я не думаю, что это решит проблему. Пример: День 1: пользователь заходит на веб-сайт, нажимает «Войти через твиттер», входит в твиттер, нажимает «войти», чтобы авторизовать веб-сайт для общения с учетной записью твиттера, отправляется обратно на веб-сайт, все в порядке. День 2: пользователь возвращается, нажимает «Войти через твиттер», ему нужно снова авторизовать приложение. Это шаг, которого я пытаюсь избежать. - person David; 11.05.2011