首页 > 解决方案 > 如何将未经身份验证的用户重定向到登录页面?

问题描述

我使用 React 和 Django 会话和 Django Rest Framework 开发一个 Web 应用程序进行身份验证。我已经配置了在登录时提供给用户的会话。

我正在尝试找到一种方法将未经身份验证的用户从 Web 应用程序中的任何页面重定向到登录页面。

我试图获取此处看到sessionid的cookie的值,以便在值 == 0时可以重定向用户。.length

    if (getCookieValue('sessionid').length === 0) {
    return <Redirect to="/login" />
}

但是,由于sessionidcookie 是HTTP cookie,因此JavaScript无法获取该值。因此,它始终为 0。

如何获取 HTTP cookie 的值?或者,有没有其他方法可以达到我想要的效果?

标签: javascriptreactjsdjangosessionsession-cookies

解决方案


这就是 HTTP-only cookie 的目的——使 Javascript 无法访问它们。您的 Javascript 需要向 Django API 发出请求并将会话 ID 存储在客户端(使用 LocalStorage 或类似机制)或解释来自 API 的重定向顺序。


推荐阅读