【问题标题】:Authentication between React and Django, when both are on different serversReact 和 Django 之间的身份验证,当两者都在不同的服务器上时
【发布时间】:2021-05-07 23:19:43
【问题描述】:

我正在开发一个网络应用程序,其中我将使用 React 作为前端,使用 Django 作为后端。

但问题是我的前端部分在不同的服务器上,而后端部分在不同的服务器上。并希望通过 API 在它们之间进行通信。

我想知道如何对用户进行身份验证并将经过身份验证的用户从后端获取到前端。

我正在考虑提到的选项

->我应该使用令牌认证吗

->我应该使用会话身份验证

->我应该使用 JWT 身份验证

我很困惑,因为还有一个问题,我将在 React 中存储身份验证令牌的位置。?

还有一个问题,会话身份验证真的可以在 2 个不同的服务器之间工作吗?

【问题讨论】:

  • 我和一周前有同样的想法,经过大量研究,最好的(我能找到的,可能是关于它的其他意见)是使用 Jwt(很多优势和安全性明智的)使用 Corsheader 从 Django 端连接它们,和 Axios 从 React 端连接它们(你可以/将写下 urls ,所以无论它们在什么服务器上,它们都会通信),

标签: reactjs django authentication django-rest-framework


【解决方案1】:

是的,如果设置正确,身份验证应该在两个不同的服务器之间工作。

您应该使用的身份验证类型取决于您的用例。您应该选择最适合您的需求。

至于存储token,也要看:

  • 如果你有一个短暂的 JWT,你可以将它存储在本地存储中,但它很容易受到 XSS 攻击。

  • 如果您的 JWT 寿命更长,您可以将其存储在启用了 HTTP-Only 和安全标志的 cookie 中。但这意味着你的前端和后端必须在同一个域中。

但所有这些都取决于您的特定用例。

最后,由于您提到后端和前端位于不同的服务器中,我假设它们托管在不同的域或子域中。如果是这种情况,请务必在后端配置 CORS,以便接收来自 React 应用的请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    相关资源
    最近更新 更多