django - 我应该为我的电子商务网站使用 JWT 还是 session ?

我正在为个人项目构建电子商务网站。它使用 React 作为前端,使用在 django 上运行的 REST API 作为后端。我希望用户无需帐户即可将商品添加到购物车并下订单。

对于 guest 用户,使用 session /cookie 来存储信息非常好,但是对于登录用户,我想使用数据库来存储购物车中的商品。这将需要创建一个用户并给他们一个授权 token ,以便他们可以执行必要的操作。

那么我应该使用 session /cookie 身份验证还是有更好的方法来使用 JWT 实现我想要的?

最佳答案

这两种方法都可以很好地工作。但是,我目前正在做类似的事情,我个人会推荐更简单的选项,即经典 session 方法。 JWT token 可能更难维护,如果操作不当,有时还会不安全。此外,JWT token 不会在登录之间持续存在。

在这两种方式中,我不明白为什么创建和维护购物车会更好,除非 session 系统实际上可以在 session 本身中存储完整的购物车。然后,您可以在 API 级别实现 session Controller 。 例如:GET "https://{host}/api/cart" 返回 session 购物车中的项目。

# Django session
request.session['cart_id'] = cartId

# JWT Tokens
jwt.encode({‘cart_id’: cartId} ...

请注意.. 如果您在本地主机上工作以进行 react 并在远程服务器上工作以供您的 API 使用,则设置 session 可能会更加困难。 (cookie 通常按域设置)。

https://stackoverflow.com/questions/58946089/

相关文章:

python - 当 URL 中没有尾部斜杠时,使用 VueJS 单页的 Django 路由会出现意

r - 如何将 csv 文件导入使用 R 内核的 Google Colab?

javascript - 在 express/react SSR 应用程序中使用 materiali

flutter - 调用 notifyListeners() 时对话框状态不更新

ksqldb - KSQL 每组选择对应于具有最少时间戳的一行

node.js - Npm 包安装在 nvm 的错误 Node 版本文件夹中

amazon-web-services - 无服务器 AWS - 是否值得使用自定义授权方(作为 l

node.js - 如何对 express-http-proxy 进行单元测试

angular - ng5- slider : Dragging pointers not movi

sql-server - [Microsoft][SQL Server 的 ODBC 驱动程序 17