PHP - OAuth2 强制 Github 重新授权(重新记录)


PHP - OAuth2 force Github reauthorizations (relogging)

出于安全原因,我需要Github要求用户再次登录,以确认它实际上是GitHub帐户的所有者,该帐户试图在我当前的单点登录项目中使用OAuth2。

对于LinkedIn和谷歌,我遇到了同样的问题,对于Facebook,developers.facebook.com 中有一个选项,每次都强制OAuth2的reauth,但现在我已经使用此代码来强制Facebook Reauth:

public function getRequestParams() {
    return array(
        'auth_type' => 'reauthenticate'
    );
}

我昨天整个下午都在搜索,现在又花了整个上午的时间。对于客户的Web应用程序来说,这是强制性的,应用程序必须为LinkedIn/Facebook/Github/Google重新进行身份验证,我可能会让它与LinkedIn/Google一起使用,但我看不到Github的任何解决方案。

简单地要求一个新令牌也不会做任何事情,因为这样 Github 帐户仍然登录并会自动授权它。显然,我无法对来自其他 URL 的 cookie 有所脾气。

无论如何我能做到这一点吗?我很确定根本没有办法通过 OAuth2 参数做到这一点(否则我可以将其添加到我的抽象类中,允许它与我添加的任何 SingleSignOn 一起使用,这将是最佳的,但似乎是不可能的)。

我在这里为 OAuth2

提出了类似的问题,但我相信这是不可能的 OAuth2 单点登录组件,强制重新身份验证

但具体到Github,是否有可能在每次进行OAuth调用时强制用户登录?

所以我一直在

我们的 SSO 适配器上做更多的工作,我不得不得出结论,这是不可能的。这是我得出的两个结论。

  1. OAuth2是一个不提供任何功能的框架,例如,您可以使用它来制作抽象的东西,并对Github/Facebook/LinkedIn/etc使用相同的方法,而不必使用5个不同的SDK。
  2. 如果社交媒体不提供该功能,那么您就无法做到这一点。除非您想进行一些几乎边界线黑客攻击并破坏用户会话/cookie。即使有可能,也可能是不合法的,而且肯定不是用户友好的。
我们

最终接受了有人可以利用登录另一个用户帐户的可能性很小,但考虑到您需要物理访问或必须能够远程控制某人的计算机,我们决定这是用户应该控制的事情,除非我们根本不提供社交媒体,否则我们真的无能为力。