使用访问令牌获取访问令牌?

get access token with access token?

据我目前对访问令牌的了解,在代码流中,客户端可以使用授权代码或刷新令牌获取访问令牌。

但是..它能否在令牌过期之前使用它持有的访问令牌获得新的访问令牌?

我读了RFC6749(1.1 ~ 1.4, 4.1, 4.2, 5 sections 只是为了时间),我找不到这样的

"access token must get issued by only explicit resource owner's grant or refresh token"

所以我一直在想..

使用访问令牌颁发访问令牌如何。

这有什么问题?

我对 OAuth 几乎是菜鸟,只通过互联网学习它,所以我可能完全误解了一些东西 D:

请赐教..谢谢!

您不能使用访问令牌来获取新的访问令牌。访问令牌是独立的不记名令牌,它授予您访问某些数据的权限。 (由范围表示)出于安全原因,访问令牌的生命周期有限。一旦过期,您将无法再使用它。

考虑是否有恶意的人获得了您的访问令牌。然后他们可以使用它来访问数据,但只能访问有限的时间。一旦访问令牌过期,他们将无法再访问该数据。

刷新访问

授权过程的第一步给你一个授权码,这是一个非常短暂的一次性代码,大概五分钟,只能使用一次。当您交换它时,如果您请求离线访问,您将获得一个访问令牌和一个刷新令牌。

刷新令牌可用于获取新的访问令牌。您可以在以后使用它来获得访问权限,而无需再次请求用户的访问权限。要获得新的访问令牌,您首先需要拥有用于创建访问令牌的客户端和 i 以及客户端密码,并且在某些情况下,您需要能够访问重定向 uri 所在的服务器。这样,如果同一个恶意人员访问了他们的刷新令牌,他们就无法使用它来获取新的访问令牌,除非他们拥有您的、客户端 ID、客户端密码和服务器访问权限。

您可能会觉得这很有趣Understanding oauth2 with curl

TLDR

能够撤销访问权限。为此使用刷新令牌。

这是我的理解。访问令牌不由颁发它们的身份验证服务器保留。它们的大小非常大,在一般情况下可能有很多,每个范围一个或一组范围。刷新令牌是不透明的短字符串,由身份验证服务器保留。如果发现用户的系统受到威胁,它们可以被 auth 服务器无效以撤销身份验证。例如,如果攻击者获得 access/refresh 令牌并从不同的 IP 使用它们。在这种情况下,授权服务器将针对保留的刷新令牌设置一个标志,并且不会在没有 re-authentication.

的情况下刷新访问令牌