- 用户需要先使用昵称,邮箱和密码进行注册,不能出现空缺 ,对密码进行MD5加密后保存用户信息到数据库
- 用户在登录后才可以使用短链接功能,短链接不能含有特殊字符
- 用户输入需要转换的长链接,自定义的短链接,若为空就用算法随机生成一个。可以设定过期时间,以及附注,创建对应的短链接记录存储在数据库中
- 查询短链接:用户先通过geturl功能获取自己创建的所有短链接编号,然后根据编号查询对应的短链接信息
- 更新短链接:用户输入短链接对应的ID以及新的自定义的短链接(若为空就用算法随机生成一个)和附注
- 删除短链接:用户输入短链接对应的ID即可从数据库中删除对应记录
- 冻结短链接:用户输入短链接对应的ID即可暂停此短连接,再次使用该服务可以重启此短链接
- 修改密码操作:登录后输入原用户的密码,连续输入新的密码两次,后台验证是否一致,验证失败重新来(保留原来输入的信息),成功后更改数据库中用户的信息
- 忘记密码操作:未登录状态,输入用户账号,获取验证信息,成功验证后连续输入新的密码两次,后台验证是否一致,验证失败重新来(保留原来输入的信息),成功后更改数据库中用户的信息
- 鉴权信息,用户登录后自动生成jwt,持续存储在本地数据库中,避免泄漏,将jwt信息可以存储在header的Authorization中
- 定时清除数据库中过期记录(url记录和登录记录),使用协程管道完成
- 对数据库的写入加锁,确保线程安全
在服务器上部署需要更改的设置
- mysql dsn "slink:slink123@tcp(localhost:3306)/slink?charset=utf8&parseTime=true&loc=Local"
- gin的模式切换为releasseMODe
gin.Setmode(gin.ReleaseMode)
r:=gin.New()
- 切换gin监听的端口为9005