我如何手动或强制生成由我自己的 Web API 生成的访问令牌过期



我在 asp.net Web API 中创建 生成访问令牌并存储在浏览器存储缓存或会话存储中 如果有人从浏览器中窃取了访问令牌,他可以使用提琴手或邮递员暴露API数据 那么我们如何防止这个问题 我们如何手动或强制使令牌过期

我认为您不能使以这种方式生成的访问令牌过期。 访问令牌在其生存期内是有效的。这就是访问令牌的生存期较短的原因,通常为一小时。

即使让用户撤销其同意也不会使访问令牌过期。

话虽如此,OAuth 2.0 令牌吊销 RFC 7009 规范通过撤销两种类型的令牌的机制补充了核心规范。 令牌是一个字符串,表示资源所有者向客户端颁发的授权。 吊销请求将使实际令牌以及基于相同授权授予和授权本身的其他令牌(如果适用)无效。

POST /revoke HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
token=45ghiukldjahdnhzdauz&token_type_hint=access_token

但是,这可能仅在使用身份验证服务器获取访问令牌并且身份验证服务器支持此终结点时才有效。 例如,IIR Google仅支持撤销刷新令牌,不支持撤销访问令牌。 这不是默认的事情。 我自己从未实现过它,它可能需要将访问令牌存储在身份验证服务器上,然后以某种方式进行测试,而不是让它成为标准的 JWT。

通常的机制是引入刷新令牌。让访问令牌的生存期较短(例如一天),并且每天具有较长的刷新令牌请求新的访问令牌。然后,可以通过禁用刷新令牌的访问权限来要求服务器撤销特定帐户的访问权限。

相关内容

最新更新