首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ServiceStack中实现一层到期的基于令牌的授权?

问如何在ServiceStack中实现一层到期的基于令牌的授权?
EN

Stack Overflow用户
提问于 2021-02-04 17:06:39
回答 1查看 89关注 0票数 1

我们有一个基于ServiceStack的cookie认证的移动应用程序。该应用程序存储用户的登录cookie,并在用户愿意的情况下保持登录。

我们有一个‘购买PIN’的功能,在应用-用户可以设置一个PIN,并要求它输入,每次他们作出购买。这样做的目的是防止在失窃或遗失的未上锁手机上进行购买。

该应用程序有一个设置/配置视图,在该视图中,用户可以设置、打开和关闭购买PIN。因此,我们需要强制用户重新认证,以便能够编辑他们的设置。

我们的想法是当用户尝试输入设置页面时:

  • 该应用程序要求用户重新验证他们的密码。
  • 作为响应,API向应用程序发出一个令牌。令牌表示只有API知道的一些秘密,加上用户ID,以及不久的将来的过期时间戳。
  • 所有与用户设置相关的API调用都需要在请求中发送一个有效的令牌.
  • API验证令牌是为同一个用户发出的,并检查时间戳是否仍然良好。
  • 如果API发现令牌无效或过期,它会响应一个信号,即UI应该让用户重新身份验证以在继续之前获得一个新的令牌。

所有这些都必须与现有的ServiceStack cookie身份验证一起存在(由于各种原因,我们当前的auth层在作用域和时间之外)。

在ServiceStack中实现这一额外安全级别的最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 21:25:33

您可能需要查看WebSudoFeature插件,它允许特权保护服务强制用户重新进行身份验证,以便能够访问带有[WebSudoRequired]注释的服务。

至于即将到期的令牌,我将实现它作为一个单独的App层安全特性,作为请求DTO属性传递到您的服务中,而不是试图将它与ServiceStack的顶级身份验证集成起来。

对于它的实现,您可以在应用程序中验证它,也可以生成一个包含过期的UUID/Guid的DB条目,因为当使用这些PIN授权令牌时,您可能希望它维护审计信息(例如时间/IP),而不是使用无状态令牌而不使用任何审计历史记录。

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

https://stackoverflow.com/questions/66050389

复制
相关文章

相似问题

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