2014-01-11 5 views
0

Я реализовал Omniauth для Twitter в приложении rails, над которым я работаю. С пользователями, которые подписываются с помощью этого, я могу получить токены OAuth и секреты для них. Это все работает.Получить Twitter OAuth токен и секрет, не введя пользователя в систему с помощью Twitter

Что я не могу понять, как получить токены и тайны OAuth для пользователей, которые не подписываются с помощью Twitter?

Я уверен, что я использовал сайты, на которых вы можете «аутентифицировать» их, чтобы они могли получить токены и тайны OAuth для вас, не подписываясь с помощью Twitter. Twitter, похоже, предполагает, что вам нужно использовать разрешение с тремя ногами, но я не могу найти ничего об этом.

Является ли трехглавый авторизационный способ обходить его?

ответ

1

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

Теперь вы можете просто добавить кнопку на свой сайт, чтобы люди, которые вошли в систему, но не имеют токенов/секретов Twitter. Кнопка ссылается на тот же самый номер /auth/twitter, который вы используете для входа с помощью ссылки Twitter.

После аутентификации с помощью Twitter они будут отправлены на URL-адрес обратного вызова, где ваше приложение увидит, что они уже вошли в систему (пользователь находится в сеансе) и просто добавят токен/секрет Twitter.

+0

Отлично! Это именно то, что я искал. – hamchapman

Смежные вопросы