gpt4 book ai didi

django - CORS 和 JWT 有什么区别

转载 作者:行者123 更新时间:2023-12-04 14:12:46 25 4
gpt4 key购买 nike

我在 heroku 上开发和部署了 django rest api。然后我试图在 vue cli 中获取 api,但它不起作用。它说 CORS 错误。这次我的脑子里有一些问题

  • 我应该在后端使用 cors 库或在前端使用 allor-origin 启用 cors??
  • 我可以使用 JWT 而不是 CORS
  • 如果在后端启用 cors,用户应该面临什么问题??

最佳答案

CORS 和 JWT 是完全不同的东西。

JWT 代表 JSON Web Tokens,是由 RFC 7519 定义的基于 token 的身份验证。因此,JWT token 用于允许访问(登录)Web 资源。您还可以向 token 添加信息(如用户名),如果未加密,则可以公开读取。但是 JWT 有一种签名方法,所以可以验证 token 是否有效。可以使用不同的加密算法,例如RSA。您可以选择非对称签名(例如 RSA)或对称签名(例如 HS256)。

您可以在 jwt.io 找到有关 JWT 的信息

CORS 代表跨源资源共享,它定义了如何允许浏览器跨资源请求请求,或者换句话说:对其他域的 HTTP 访问。

在我看来,mozilla 在覆盖 CORS 方面做得很好: https://developer.mozilla.org/de/docs/Web/HTTP/CORS

针对您的具体问题:您正在尝试访问不属于同一域的资源(http 链接),因此您的浏览器出于安全原因不允许打开它。

allow-origin 是一个 HTTP header ,在您使用的网络框架中设置。由于 Django 没有开箱即用的 CORS,因此您需要添加一些内容,例如 https://github.com/ottoyiu/django-cors-headers

安装后即可启用 CORS

CORS_ORIGIN_ALLOW_ALL = True

并启用您要调用的跨域请求:

CORS_ORIGIN_WHITELIST = (
'host1.example.com',
'host2.example.com',
'host3.foobar.info'
)

关于django - CORS 和 JWT 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63035716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com