PHP中的OpenID访问令牌验证
我正在尝试在PHP中的ThinktectureOpenIDConnect上进行SSO验证 我已经编写了一个客户端并获得了一个访问令牌。但我不知道如何验证它 文件说: 3.2.2.9. 访问令牌验证 要使用ID令牌验证从授权端点发出的访问令牌,客户端应执行以下操作:PHP中的OpenID访问令牌验证,php,validation,openid-connect,thinktecture,Php,Validation,Openid Connect,Thinktecture,我正在尝试在PHP中的ThinktectureOpenIDConnect上进行SSO验证 我已经编写了一个客户端并获得了一个访问令牌。但我不知道如何验证它 文件说: 3.2.2.9. 访问令牌验证 要使用ID令牌验证从授权端点发出的访问令牌,客户端应执行以下操作: 将access_令牌的ASCII表示形式的八位字节散列为 JWA[JWA]中为alg头指定的哈希算法 ID令牌头的参数。例如,如果alg是 RS256,使用的哈希算法是SHA-256 取散列的最左边的一半,并对其进行base64ur
at_哈希值的一个示例,该值应该很容易适应您的环境:
public function setAccessTokenHash($accessTokenString)
{
// bit : 256/384/512
if(isset($this->_header['alg']) && $this->_header['alg'] != 'none'){
$bit = substr($this->_header['alg'], 2, 3);
}else{
// TODO: Error case. throw exception???
$bit = '256';
}
$len = ((int)$bit)/16;
$this->_payload['at_hash'] = Akita_OpenIDConnect_Util_Base64::urlEncode(substr(hash('sha'.$bit, $accessTokenString, true), 0, $len));
}
我们做了一个变通,得到了Idtoken并进行了验证。