首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的eCommerce网站应该使用JWT还是Sessions?

我的eCommerce网站应该使用JWT还是Sessions?
EN

Stack Overflow用户
提问于 2019-11-20 11:16:33
回答 4查看 1.5K关注 0票数 2

我正在为一个个人项目建立一个eCommerce网站。它使用React作为前端,使用运行在django上的REST API作为后端。我希望用户能够添加项目到购物车和下订单,而不需要帐户。

对于访客用户,使用会话/cookie来存储信息是很棒的,但是对于登录的用户,我希望使用数据库来存储购物车中的项目。这将需要创建一个用户并给他们一个身份验证令牌,这样他们就可以执行必要的操作。

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

EN

回答 4

Stack Overflow用户

发布于 2019-11-22 12:39:49

这两种方法都可以很好地工作。然而,我目前正在做一些类似的事情,我个人推荐更简单的选择,那就是经典的会话方法。JWT令牌可能更难维护,如果处理不当,有时还会变得不安全。此外,JWT令牌不会在两次登录之间持续存在。

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

代码语言:javascript
运行
复制
# Django session
request.session['cart_id'] = cartId

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

小纸条..如果您使用的是react的本地主机和API的远程服务器,那么设置会话可能会比较困难。(cookie通常是按每个域设置的)。

票数 1
EN

Stack Overflow用户

发布于 2019-11-29 00:17:08

我正在使用JWT,我认为如果您使用的是数据库,您可以创建一个生成的JWTby用户,然后将其存储在数据库中,您可以在参数中控制JWT的可用性,我发现保护您的API的最好方法是将JWT令牌添加到标头。

票数 0
EN

Stack Overflow用户

发布于 2019-11-29 11:23:26

如果您将在AWS中托管您的应用程序,请查看AWS Cognito,它是一个身份和用户池服务。他们的免费级别是相当慷慨的。再加上AWS Amplify非常适合React,这将为您提供开箱即用的身份验证和用户管理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58946089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档