【问题标题】:Asp.NET Core + ReactJs - What is the correct way to store authentication information?Asp.NET Core + ReactJs - 存储身份验证信息的正确方法是什么?
【发布时间】:2020-12-26 15:03:43
【问题描述】:

在网上分析了很多例子和asp.net core+react authentication给定模板后,我注意到他们都没有使用redux store。一开始我强烈反对你不应该使用它们,但它也可能只是一个示例应用程序,大致展示如何以简单的方式执行它。

难关来了:你应该如何正确执行这种方式?

如果您将其存储在商店中,则意味着它会获取您的任何用户的数据并仅在登录/注销时更新。但是,如果您的会话密钥过期,前端(redux 存储)将不知道这一点,并且尝试访问您未授权的页面将收到错误消息。为了防止这种情况,它应该在会话结束后立即注销用户。这样的事情应该如何执行? 我是否应该设置某种 计时器,让每 5-10 秒执行一次操作以检查会话密钥是否仍然有效? 或在每个 页面组件上渲染/重新渲染检查会话密钥是否仍然存在

正确的方法是什么?

【问题讨论】:

    标签: asp.net reactjs asp.net-core authentication


    【解决方案1】:

    这取决于您的身份验证系统,您可以使用例如。 Auth0。 如果我对你的理解正确 - 有关于:

    --- 令牌到期

    如果有过期信息,可以获取到什么时候过期的信息:

    return new Date().getTime() < expiresAt;
    

    如果令牌过期,只需重定向到带有信息的登录页面或自动刷新令牌。

    这里有更多的实现细节(带有拦截器模式):

    https://medium.com/@monkov/react-using-axios-interceptor-for-token-refreshing-1477a4d5fc26#:~:text=is%20refresh%20token?-,Refresh%20token%20can%20reload%20a%20couple%20of%20refresh(itself)%20and,is%20about%20half%20an%20hour.

    【讨论】:

      猜你喜欢
      • 2020-02-07
      • 2020-10-29
      • 2021-08-29
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2017-02-09
      • 2013-08-18
      相关资源
      最近更新 更多