问题描述
我们正在使用 oidc-client。客户端设置授权类型是授权码。但是,我发现我的授权码使用了 PKCE。因为我可以在没有客户端机密的情况下使用它,并且在 uri 上有 code_challenge。我正在查看它的设置方式,但找不到。
我只想知道现在带有 PKCE 的 AuthCode 是否是默认的。如果我错了,请纠正我,当您没有在 oidc-client 中设置将使用 PKCE 时,您应该使用需要客户端密码的普通身份验证代码?
这是我的客户:
const image = await ImagePicker.openPicker({
height: 385,maxFiles: 6,minFiles: 3,mediaType: 'photo',multiple: true,width: 1000,}).then(image => {
console.log('imahge',image);
let images = [];
images = images;
image.forEach((ele,i) => {
images.push(ele.path);
});
setimages(images);
console.log('all',images);
});
} catch (error) {
console.log('Error:',error);
}
```
}
解决方法
如果确实是默认行为,那就太好了。使用 PKCE 没有任何缺点,如果可能,您应该始终使用它。 PKCE 为流程添加了另一层安全性,它不会阻止您使用客户端的机密。此外,如果授权服务器不支持 PKCE,它应该忽略参数,因此授权服务器是否使用 PKCE 对您的客户端来说并不重要。