首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ory Hydra示例客户端-如何设置PKCE

Ory Hydra示例客户端-如何设置PKCE
EN

Stack Overflow用户
提问于 2022-02-09 06:36:42
回答 1查看 434关注 0票数 1

我正在通过Ory/Hydra 5分钟教程。我能够创建一个必须使用PKCE使用authorization_code流登录的公共客户端,如下所示:

代码语言:javascript
复制
    hydra clients create \
    --endpoint http://127.0.0.1:4445 \
    --id public-client \
    --grant-types authorization_code,refresh_token \
    --response-types code \
    --scope offline \
    --token-endpoint-auth-method none
    --callbacks http://127.0.0.1:5555/callback

我还通过设置env变量将Hydra配置为要求公共客户端使用PKCE。

代码语言:javascript
复制
OAUTH2_PKCE_ENFORCED_FOR_PUBLIC_CLIENTS=true

当我按照教程创建用户应用程序时.

代码语言:javascript
复制
    hydra token user \
    --client-id public-client \
    --endpoint http://127.0.0.1:4444/ \
    --port 5555 \
    --scope offline

...the应用程序无法使用PKCE流:

invalid_request 此客户端在执行授权代码流时必须包括一个code_challenge,但它是缺少的。

我在用于创建示例应用程序的CLI文档中查找了正确的配置,但没有成功。如何启动示例客户端应用程序设置以使用PKCE?

EN

回答 1

Stack Overflow用户

发布于 2022-03-16 11:15:39

简而言之,使用hydra token user cmd将无法工作,因为它还不支持使用PKCE进行测试。

要插入授权流+ pkce,您的请求应该如下所示(只是一个示例,而不是来自hydra的文档)

代码语言:javascript
复制
GET /authorize?
response_type=code
& client_id=<client_id>
& state=<state>
& scope=<scope>
& redirect_uri=<callback uri>
& resource=<API identifier>
& code_challenge=<PKCE code_challenge>
& code_challenge_method=S256

因此,上面的cmd在进入授权流时缺少了最后两个args:code_challengecode_challenge_method。如果您想使用PKCE流,您需要自己实现它。

查看这个链接,它可能会帮助您摆脱它:https://docs.cotter.app/sdk-reference/api-for-other-mobile-apps/api-for-mobile-apps

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71044992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档