Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以编程方式注销Drupal 7中的OAuth连接器_Php_Drupal_Oauth_Drupal 7_Drupal Modules - Fatal编程技术网

Php 以编程方式注销Drupal 7中的OAuth连接器

Php 以编程方式注销Drupal 7中的OAuth连接器,php,drupal,oauth,drupal-7,drupal-modules,Php,Drupal,Oauth,Drupal 7,Drupal Modules,我正在使用模块对来自外部源的用户进行身份验证。 外部源上的每个用户都有一个对应的Drupal用户帐户 宣誓认证成功后,用户通过user\u authenticate和user\u login\u finalize以编程方式使用匹配的Drupal用户帐户登录 当drupal用户注销时,我想在user\u logout中以编程方式撤销OAuth访问权。 但是我在任何OAuth类中都找不到任何logout/revoke/destroy/invalidate方法 在Drupal7中,以编程方式注销经过身

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

宣誓认证成功后,用户通过
user\u authenticate
user\u login\u finalize
以编程方式使用匹配的Drupal用户帐户登录

当drupal用户注销时,我想在
user\u logout
中以编程方式撤销OAuth访问权。 但是我在任何OAuth类中都找不到任何logout/revoke/destroy/invalidate方法

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

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

编辑:
如果我清除保存的OAuth令牌,这与注销类似吗?有人能更清楚地说明OAuth模块存储了哪些数据,以及如果没有直接注销选项,如何清除这些数据吗?

如果我正确理解您的问题,您可以调用
user\u logout()
以编程方式注销经过身份验证的用户

这是可能的,因为模块(基于该模块)合并了
hook\u user\u logout()
,以将注销调用传播到OAuth提供程序

希望这能回答你的问题


注意:您不使用更受欢迎(且更稳定)的模块有什么具体原因吗?

我对drupal不熟悉,认为这是一个新手问题。希望有人能给我一个简单的答案。令人惊讶的是,我甚至在开始悬赏后也没有得到一个回复。我不敢相信我的悬赏会白白浪费掉。。。没有回答…我将尝试你的解决方案。关于OAuth模块,我觉得它更适合实现OAuth服务器,因为我需要一个简单的客户端库来验证和签署请求。OAuth连接器的设置非常简单,并且运行良好。我现在意识到OAuth连接器模块也使用OAuth模块。。。我真的是个笨蛋。。。所以我一开始没能理解你的答案……”当用户从页面注销时,调用user_logout()。如果我正确地理解了您的答案,这将自动注销OAuth Connecter,因为有钩子。但这并没有发生。如果您看到我在问题中也提到了“user_logout()”方法。不幸的是,由于注销应该传播到OAuth提供程序(但您所说的情况并非如此),问题在于OAuth设置或模块本身。那我们就无能为力了。。。也许您应该测试更流行的OAuth模块,看看在这种情况下是否也存在问题?