Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 1.97 KB

README.md

File metadata and controls

24 lines (22 loc) · 1.97 KB

短链接服务

业务逻辑

  1. 用户需要先使用昵称,邮箱和密码进行注册,不能出现空缺 ,对密码进行MD5加密后保存用户信息到数据库
  2. 用户在登录后才可以使用短链接功能,短链接不能含有特殊字符
  3. 用户输入需要转换的长链接,自定义的短链接,若为空就用算法随机生成一个。可以设定过期时间,以及附注,创建对应的短链接记录存储在数据库中
  4. 查询短链接:用户先通过geturl功能获取自己创建的所有短链接编号,然后根据编号查询对应的短链接信息
  5. 更新短链接:用户输入短链接对应的ID以及新的自定义的短链接(若为空就用算法随机生成一个)和附注
  6. 删除短链接:用户输入短链接对应的ID即可从数据库中删除对应记录
  7. 冻结短链接:用户输入短链接对应的ID即可暂停此短连接,再次使用该服务可以重启此短链接
  8. 修改密码操作:登录后输入原用户的密码,连续输入新的密码两次,后台验证是否一致,验证失败重新来(保留原来输入的信息),成功后更改数据库中用户的信息
  9. 忘记密码操作:未登录状态,输入用户账号,获取验证信息,成功验证后连续输入新的密码两次,后台验证是否一致,验证失败重新来(保留原来输入的信息),成功后更改数据库中用户的信息
  10. 鉴权信息,用户登录后自动生成jwt,持续存储在本地数据库中,避免泄漏,将jwt信息可以存储在header的Authorization中
  11. 定时清除数据库中过期记录(url记录和登录记录),使用协程管道完成
  12. 对数据库的写入加锁,确保线程安全

在服务器上部署需要更改的设置

  1. mysql dsn "slink:slink123@tcp(localhost:3306)/slink?charset=utf8&parseTime=true&loc=Local"
  2. gin的模式切换为releasseMODe
gin.Setmode(gin.ReleaseMode)  
r:=gin.New()
  1. 切换gin监听的端口为9005