基础功能:
- 用户注册 √
- 用户登录 √
- 用户个人主页 √
- 用户信息修改 √
- 商家发布商品信息 √
- 用户查看商品 √
- 用户将商品加入购物车 √
- 用户购买商品 √
附加分:
- 热榜
- 用户密码加盐加密 √
- 用户登录有短信登录、邮箱登录、第三方登录多种形式
- 验证码(登录,注册,修改密码)
- 用户状态保存使用 JWT 或 Session √
- 搜索功能(搜索商品) √
- 评论功能(售后评价)
- 用户浏览记录
- 秒杀活动
- 将项目部署上线 √
- 使用 https 加密
- 数据缓存 √
- 后端安全性 √
将电商平台分为五个板块,各个板块负责完成相应的功能
- 用户登录后会得到token,后续携带token调用其他接口
- 用户密码加盐加密,数据安全性提高
- 令token过期
- 通过验证预留手机号可修改密码
- 用户登录后会将个人信息存入缓存,可更快读取并修改个人信息
- 支持模糊搜索
Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架 , 由于使用了httprouter,速度提高了近40倍。
JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。JWT用于本项目的用户以及商铺认证,区分角色。
跨域资源共享(Cross-Origin Resource Share 简称CORS),CORS是一个W3C标准,它允许浏览器向跨源服务器发出XMLHttpRequest请求,从而突破了ajax只能使用同源服务的局限性。
Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。
zap 是由 Uber 公司开源的一款 Go 日志库,就像它的命名一样,zap 以快著称。官方 GitHub 仓库中只用一句话来概括 zap:「在 Go 中进行快速、结构化、分级的日志记录」。本项目中用zap进行日志记录。
令牌桶(Token Bucket)是一种用于流量控制的算法,用于限制单位时间内的请求速率或数据传输速率。它可以帮助保护系统免受突发的高流量或过载。