在IdentityModel.OidcClient中能否获取生成code_challenge所用的code_verifier
IdentityModel.OidcClient code_verifier 获取方案
- 可以直接获取到IdentityModel.OidcClient生成code_challenge时对应的code_verifier,无需额外自行实现生成逻辑。
- 具体获取方式:
- 调用OidcClient的
PrepareLoginAsync()方法生成授权请求参数时,返回的AuthorizeState对象就包含了生成好的CodeVerifier属性,直接读取即可:
// 完成OidcClient实例初始化后执行 var authorizeState = await oidcClient.PrepareLoginAsync(); // 读取对应code_verifier string codeVerifier = authorizeState.CodeVerifier;- 拿到的
codeVerifier可以直接复制到Postman的授权码兑换请求参数中使用,和OidcClient自动生成的code_challenge完全匹配。
- 调用OidcClient的
- 注意事项:
- 如果你需要自定义参数适配Postman测试场景,也可以自行生成符合RFC 7636规范的code_verifier和对应code_challenge,手动赋值到
AuthorizeState的对应属性后再发起授权请求,确保两端参数一致。 - code_verifier属于敏感凭证,仅用于本地测试场景,请勿硬编码到生产代码或者上传到公开代码仓库。
- 如果你需要自定义参数适配Postman测试场景,也可以自行生成符合RFC 7636规范的code_verifier和对应code_challenge,手动赋值到
内容的提问来源于stack exchange,提问作者Sergio Solorzano
相关产品推荐
相关产品推荐

