Oauth 2.0 在OpenID connect授权代码流中使用PKCE时是否需要客户端密码? ,OAuthServices使用CODEL验证器来避免中间人攻击。据我所知,将OAuth代码交换为令牌是基于JavaScript的单页应用程序(SPA)的最佳选择

Oauth 2.0 在OpenID connect授权代码流中使用PKCE时是否需要客户端密码? ,OAuthServices使用CODEL验证器来避免中间人攻击。据我所知,将OAuth代码交换为令牌是基于JavaScript的单页应用程序(SPA)的最佳选择,oauth-2.0,google-api,openid-connect,pkce,Oauth 2.0,Google Api,Openid Connect,Pkce,当我用GoogleAPI进行实验时,它说“客户端的秘密丢失了” 下面是HTTP请求和响应 身份证号码:1 地址: Http方法:POST 内容类型:application/x-www-form-urlencoded 标题:{Content Type=[application/x-www-form-urlencoded],Accept=[/]} 有效载荷:授权类型=授权代码和代码=4%2F1AH3Ubnm550IoT8AZ_e_eqLYDn3-JyXVo22LOcAlsWPnxTV_o0Tv2N1

当我用GoogleAPI进行实验时,它说“客户端的秘密丢失了”

下面是HTTP请求和响应

身份证号码:1 地址: Http方法:POST 内容类型:application/x-www-form-urlencoded 标题:{Content Type=[application/x-www-form-urlencoded],Accept=[/]} 有效载荷:授权类型=授权代码和代码=4%2F1AH3Ubnm550IoT8AZ_e_eqLYDn3-JyXVo22LOcAlsWPnxTV_o0Tv2N1YmnfTqHVFm65n4TuzmHfk5Tkklossnrw&scope=openid+profile+email&redirect_uri=https%3A%2F%2LocalHost%3A8443%2Fdemo&client_id=myclientid.apps.googleusercontent.com&code_-verifier=IV8;=iv8n89-DH3QD10ROYYF6E6FYYBYBYBYBYBY8BYD4ZZYYL4ZZ75EJ4ZYYYYD4Z5.5EJ4Z542sLWSUnxAG8e0a%7ETjmF_UFioJMA_ctB2jz6qbcYtu9uUOKp

身份证号码:1 答复代码:400 编码:UTF-8 内容类型:application/json;字符集=utf-8 标题:{Accept Ranges=[none],Alt Svc=[h3-28=“:443”;ma=2592000,h3-27=“:443”;ma=2592000,h3-25=“:443”;ma=2592000,h3-T050=“:443”;ma=2592000,h3-Q049=“:443”;ma=2592000,h3-Q048=“:443”;ma=2592000,h3-Q048=“:443”;ma=2592000,h3-Q046=“:443”;ma=2592000,h3-Q043=“:c=2592000;私有控制缓存=2592000,h3=444],内容类型=[application/json;charset=utf-8],日期=[Mon,2020年6月22日04:41:53 GMT],服务器=[HTTPServer2上的脚手架],传输编码=[chunked],变量=[Origin,Accept encoding,Referer,X-Origin],X-content-type-Options=[nosniff],X-Frame-Options=[SAMEORIGIN],X-XSS-Protection=[0]} 有效载荷:{ “错误”:“无效的请求”, “错误描述”:“缺少客户端密码。” }


我的理解是“当传递代码验证程序时,我们不需要客户端密码”是错误的,还是谷歌不支持PKCE,或者我在请求中遗漏了一些其他参数?请帮助。

我看了一下,在尝试使用最新版本时遇到了相同的问题。看看谷歌文档,它们的实现似乎仍然基于


我验证了您可以发送响应\u type='token id\u token'并成功获取令牌,不过我更喜欢使用授权代码流(PKCE)。

谢谢Gary。这是令人惊讶的谷歌还不支持它,而我看到很多建议使用PKCE。