【发布时间】:2016-04-23 16:57:38
【问题描述】:
我正在构建一个简单的身份验证系统,该系统将允许单个用户使用多个提供程序。我正在使用omniauth 和devise。有没有办法从我的应用程序中取消单个用户的特定提供程序的链接?
通过取消链接提供者,我的意思是从 oauth 应用程序中删除用户,并从我的数据库中删除有关此特定提供者(Facebook、Twitter)的数据(uid 和类似的东西)。也就是说,取消链接后,用户将无法再使用 Facebook 登录。
我已经检查过this 并没有太多帮助。我还查看了 devise 和 omniauth 文档。似乎没有内置的方法可以实现这一目标。我是否必须自己向每个提供商提出请求才能取消链接 OAuth 令牌?
【问题讨论】:
-
“取消链接提供商”是什么意思?
-
@Uzbekjon 我已经更新了描述。
-
您只需删除用于存储 OAuth 详细信息的任何表中的行,例如
user.authentications.find_by(provider: 'facebook').destroy。 Facebook 还有一个用于撤销应用权限的 API 端点。 developers.facebook.com/docs/facebook-login/permissions/…
标签: ruby-on-rails devise omniauth