【问题标题】:Programmatically logout OAuth Connector in Drupal 7在 Drupal 7 中以编程方式注销 OAuth 连接器
【发布时间】:2014-02-25 08:13:47
【问题描述】:

我正在使用OAuth Connector 模块从外部来源对用户进行身份验证。 外部源上的每个用户都有一个对应的 Drupal 用户帐户。

在成功进行 Oath 身份验证后,用户通过使用 user_authenticateuser_login_finalize 的匹配 Drupal 用户帐户以编程方式登录。

当 drupal 用户注销时,我想以编程方式撤销 user_logout 中的 OAuth 访问权限。 但我在任何 OAuth 类中都找不到任何注销/撤销/销毁/无效方法。

在 Drupal 7 中以编程方式注销经过身份验证的 OAuth 用户的正确方法是什么?

附:我知道我上面提到的系统非常不方便,并且有很多更好的方法可以在站点之间共享用户帐户,但我的问题仅限于“如何在 Drupal 7 OAuth 连接器模块中注销”。 p>

编辑: 如果我清除保存的 OAuth 令牌,是否类似于注销?谁能更清楚地了解 OAuth 模块存储的所有数据以及在没有直接注销选项的情况下如何清除这些数据?

【问题讨论】:

  • 我是drupal的新手,认为这是一个菜鸟问题。期待有人为此给我一个单行的答案。令人惊讶的是,即使在开始赏金之后我也没有得到任何回复。
  • 我不敢相信我的赏金会被浪费掉......没有答案......

标签: php drupal oauth drupal-7 drupal-modules


【解决方案1】:

如果我正确理解您的问题,您可以致电user_logout() 以编程方式注销经过身份验证的用户。

这是可能的,因为Connector 模块(OAuth Connector 所基于的模块)合并了hook_user_logout() 以将注销调用传播到 OAuth 提供程序。

希望这能回答你的问题吗?

注意:您不使用更流行(且稳定)的OAuth 模块是否有特定原因?

【讨论】:

  • 我会试试你的解决方案。关于 OAuth 模块,我觉得它更适合实现 OAuth 服务器,因为我想要一个简单的客户端库来验证和签署请求。 OAuth 连接器的设置非常简单并且运行良好。我现在意识到 OAuth 连接器模块也使用 OAuth 模块。
  • 好的...我真的是个菜鸟...所以我第一次没能理解您的答案...当用户从页面注销时调用'user_logout()'。如果我正确理解您的答案,这应该会因为挂钩而自动注销 OAuth 连接器。但这并没有发生。如果你看到我在我的问题中也提到了“user_logout()”方法。
  • 不幸的是,由于注销应该被传播到 OAuth 提供程序(但您所说的情况并非如此),问题在于您的 OAuth 设置或模块本身.那我们就无能为力了……也许您应该只测试更流行的 OAuth 模块,看看在这种情况下是否也存在问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 2012-01-04
  • 2011-12-26
  • 1970-01-01
  • 2010-12-30
相关资源
最近更新 更多