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

#php #api #oauth #twitter

#php #API #oauth #Twitter

Вопрос:

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

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

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

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

Ответ №1:

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

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

Ответ №2:

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

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

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

Комментарии:

1. Опять же, смотрите мой комментарий к другому ответу. Пользователь вообще не авторизован на моем сайте. Я хочу, чтобы они нажали «twitter», и если они уже авторизовали мое приложение с помощью своей учетной записи Twitter, затем войдите в систему.

2. Хорошо, я лучше понимаю вашу проблему. Извините, я недостаточно знаю Twitter API, чтобы ответить на этот вопрос (на самом деле, я думал, что это будет сделано Twitter автоматически)

Ответ №3:

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

Комментарии:

1. Простите меня, если я ошибаюсь, но я не думаю, что это решит проблему. Пример: День 1: пользователь заходит на веб-сайт, нажимает войти с помощью Twitter, входит в Twitter, нажимает «войти», чтобы авторизовать веб-сайт для общения с учетной записью Twitter, отправляется обратно на веб-сайт, все хорошо. День 2: пользователь возвращается, нажимает войти в Twitter, он должен авторизовать приложение снова. Этого шага я пытаюсь избежать.