如何让AWS返回显示用于授权的JWT已过期的状态代码?

问题描述 投票:0回答:1

我正在使用AWS的无服务器框架来开发基于API Gateway / Lambda的webapp。我正在使用JWT进行身份验证和授权,编写自定义授权程序,该程序员通过无服务器连接到API网关配置。

我在登录时的策略是发出一个有效期为60分钟的“访问”令牌,以及一个有效期为8天的“刷新”令牌。如果用户在发出访问令牌后尝试访问系统超过60分钟,则客户端应用程序将调用由刷新令牌验证的refresh_token API(这是此刷新令牌允许的唯一API),以获取新的一对令牌。因此,如果用户休眠超过8天,用户只需要重新输入用户名/密码详细信息,否则他们会保留令人耳目一新的令牌,如果系统被列入黑名单,系统每60分钟就有一次机会启动它们。

这个策略运行正常,除了我只能找到如何接受或拒绝基于解析JWT的API访问 - 不将特定的状态代码传递给客户端(“令牌过期 - 你需要刷新”的东西)。

所以在我的module.exports.user = (event, context, callback) => {}函数中我callback('user','Deny',methodArn)但是没有向客户提供有关用户请求被拒绝的原因的任何线索。

但是,值得注意的是,这种情况没有标准的HTTP状态代码 - 只是通用的401.所以有更好的方法来解决这个问题,我是否采取了错误的方式?

amazon-web-services jwt authorization
1个回答
0
投票

请参阅我对原始问题的评论。意识到我可以在客户端检查到期并直接进行刷新而不是尝试并且无法使用它来与服务器进行身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.