我已经在我正在开发的rails应用程序中实现了Omniauth for Twitter。对于使用该用户登录的用户,我可以获取OAuth令牌和秘密。这一切都有效。
我无法弄清楚如何为未使用Twitter登录的用户获取OAuth令牌和秘密?
我确信我已经使用了可以“验证”它们的网站,这样他们就可以在不使用Twitter登录的情况下获得OAuth令牌和秘密。 Twitter似乎暗示你需要使用三条腿授权,但我似乎无法找到任何有关它的东西。
三条腿授权是否可以解决这个问题?
答案 0 :(得分:1)
我要做的是修改处理Twitter的Omniauth回调的控制器操作。如果访问该操作时用户已经有一个会话(即他们通过您的备用机制登录),那么您只需获取Twitter令牌/秘密并将其存储,就像创建通过Twitter登录的新用户一样。如果会话中没有用户,那么执行您已经在做的事情。
现在,您只需向您的网站添加一个按钮,即登录但没有Twitter令牌/密码的人可以看到。该按钮链接到您使用Twitter链接登录时使用的完全相同的/auth/twitter
。
在他们使用Twitter进行身份验证后,他们将被发送到回调网址,您的应用将看到他们已经登录(用户在会话中)并且只会添加Twitter令牌/密码。