【问题标题】:Unlink omniauth provider取消链接omniauth提供程序
【发布时间】:2016-04-23 16:57:38
【问题描述】:

我正在构建一个简单的身份验证系统,该系统将允许单个用户使用多个提供程序。我正在使用omniauthdevise。有没有办法从我的应用程序中取消单个用户的特定提供程序的链接?

通过取消链接提供者,我的意思是从 oauth 应用程序中删除用户,并从我的数据库中删除有关此特定提供者(Facebook、Twitter)的数据(uid 和类似的东西)。也就是说,取消链接后,用户将无法再使用 Facebook 登录。

我已经检查过this 并没有太多帮助。我还查看了 deviseomniauth 文档。似乎没有内置的方法可以实现这一目标。我是否必须自己向每个提供商提出请求才能取消链接 OAuth 令牌?

【问题讨论】:

  • 取消链接提供商”是什么意思?
  • @Uzbekjon 我已经更新了描述。
  • 您只需删除用于存储 OAuth 详细信息的任何表中的行,例如user.authentications.find_by(provider: 'facebook').destroy。 Facebook 还有一个用于撤销应用权限的 API 端点。 developers.facebook.com/docs/facebook-login/permissions/…

标签: ruby-on-rails devise omniauth


【解决方案1】:

不,OmniAuth 和 Devise 没有内置此“功能”。您必须将其实现为单独的控制器,以管理用户提供程序。

【讨论】:

  • 而且我必须自己对每个将撤销授权的 OAuth 提供者进行 API 调用?
  • 我明白了,您也想撤销对提供者的身份验证。是的,你需要自己做。但是,这很容易。通常,这是发出DELETE HTTP 请求的问题,因为大多数提供者都提供了宁静的 oauth 服务。这是FB example
  • 我明白了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
相关资源
最近更新 更多