在 authcode 授予类型实现中,pkce 的授权代码是否默认?

问题描述

我们正在使用 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 对您的客户端来说并不重要。