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

标签 django rest api session jwt

我正在为个人项目构建电子商务网站。它使用 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 通常按域设置)。

关于django - 我应该为我的电子商务网站使用 JWT 还是 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946089/

相关文章:

python - 搜索后端错误 : No fields were found in any search_indexes

python - 我可以将 apache mahout 与 django 应用程序一起使用吗

java - 获取 "java.io.IOException: An existing connection was forcibly closed by the remote host"

Javascript 在对象中返回 Null 值

python - 在 Django/Python 中捕获 gaierror?

python - 在 django 中处理通用关系时遇到问题

ruby - 如何在服务器上设置我的 Sinatra REST API?

rest - PUT 的 HTTP 状态代码

database - 我可以在 Android 上为我自己的应用程序使用谷歌地图数据吗?

api - 公共(public)酒店API