我知道这有点像'RTFM'问题,但我找不到关于这个问题的可靠文档。
具体来说,我有一个使用google的oauth2 REST api来认证用户的服务。我正在使用的库(bell)最近开始调用API端点的/v2版本。这些调用似乎不再支持查询字符串中的approval_prompt=force
(或者沿着这些行,我不再能够使用特殊路由来强制使用新的刷新令牌)。
实际上,我所需要做的就是阅读文档,了解oauth2库从v1到v2的变化,或者甚至找到特定于v2的信息。developers.google.com上的所有文档似乎都是关于v1 api的
目前没有文档化的更改列表。从/auth
到v2/auth
,从v3/token
到v4/token
的主要变化是新版本认证符合OpenID Connect。早期的版本与规范有一些不一致,主要是因为当谷歌发布它们时,规范尚未最终确定。
approval_prompt
现在是prompt
。要在较新的端点上获得approval_prompt=force
行为,请指定prompt=consent
。prompt
参数的其他值在规范的3.1.2.1节中定义。
其他修改,顺序不分先后:
- ID令牌
iss
的值现在是https://accounts.google.com
,原来是accounts.google.com
-
nonce
对于隐式和混合流是必需的 - 新端点上的ID令牌可能包含配置文件声明(如果请求
profile
作用域),保存对userinfo的调用。