oauth2.0 如何在访问令牌JWT有效负载中包含用户详细信息,同时使用auth0的PKCE实现Auth Code Flow?

lc8prwob  于 2023-05-16  发布在  其他
关注(0)|答案(1)|浏览(121)

我正在尝试在一个个人Web应用程序中使用PKCE实现一个Auth Code Flow,但我遇到了问题,因此任何帮助都将不胜感激。网站的目标是让用户登录(使用Auth 0的OAuth2),并对只有用户才能访问的一些记录执行CRUD操作。该应用程序是一个带有Express后端的React SPA。我现在尝试实现的流程是:
1.用户通过前端进行身份验证:通过OAuth登录以检索Auth代码
1.我们用Auth Code交换一个访问令牌,将其设置为Authorization头承载令牌
1.在客户端,用户通过POST调用服务器创建资源:在后端,我们验证访问令牌。
1.在后端,我们确定资源是谁;这很关键,因为我需要知道哪些记录属于这个用户(这基本上是我卡住的地方)
1.将以该用户的email_address作为列之一创建记录
现在我只知道如何实现4.是让我的服务器从auth 0调用这个GET /userinfo API:这https://auth0.com/docs/api/authentication#user-profile允许我从用户的配置文件中获取电子邮件,但是HTTP调用有时需要很长时间(~ 500 ms),并且对于每个CUD操作都必须这样做感觉不对。
我认为有一种方法可以将用户信息作为声明包含在访问令牌中。我尝试在Auth令牌的请求中摆弄不同的scope值,但它们都不会更改JWT有效负载中的属性。
我将非常感谢任何人谁花时间阅读这一点,也许提供了一个解决方案,谢谢。

cngwdvgl

cngwdvgl1#

解决方案是在我的访问令牌中添加一个自定义声明,其中包含电子邮件:
https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims

相关问题