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

时间:2021-05-21 04:17:06

标签: oauth-2.0 openid-connect pkce oidc-client angular-auth-oidc-client

我们正在使用 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);
      }
    ```
    

}

1 个答案:

答案 0 :(得分:0)

如果确实是默认行为,那就太好了。使用 PKCE 没有任何缺点,如果可能,您应该始终使用它。 PKCE 为流程添加了另一层安全性,它不会阻止您使用客户端的机密。此外,如果授权服务器不支持 PKCE,它应该忽略参数,因此授权服务器是否使用 PKCE 对您的客户端来说并不重要。