跳到主要内容

注册/登录

邮箱注册

当用户使用非Gmail邮箱进行注册后,在数据库中将会写入其填入的邮箱地址和密码,并随机生成一个用户名称。初始时该账户的状态码为0,随后 tubexchat@gmail.com官方邮箱将会向用户邮箱发送一个验证码,只有用户将验证码在前端验证成功后状态码改为1。

每次注册时,API应当检测当前是否存在已经激活的账号,若已经存在则提示用户直接登录,如果存在账户但是未激活,则发送新的验证码并跳转验证码页面。

密码不得明文存储

邮箱登录

当用户填写的是Gmail则直接告知用户Gmail用户无需密码可直接登录。如果是非Gmail账号则去数据库中查询,结果如下:

  1. 数据库中找不到对应邮箱,则告知用户该邮箱并未注册;
  2. 密码错误则告知用户密码错误;
  3. 密码正确则返回数据字段;

登录接口要求

  1. 限制IP和域名;
  2. 每分钟登录次数不得超过IP;
  3. 密码输入5次失败后则需要一小时后登录; 4: 密码强度需要超过8位字母大小写

Google账户登录

[未完成]

忘记密码

当用户忘记密码申请找回时,如果用户填写的是Gmail则直接告知用户Gmail用户无需密码可直接登录。如果是非Gmail账号则去数据库中查询,结果如下:

  1. 数据库中找不到对应邮箱,则告知用户该邮箱并未注册;
  2. 数据库中找到邮箱,但是无密码,则生成一个新的密码写入数据库并将该密码发送到用户邮箱中;
  3. 数据库中有密码,通过邮箱发送给用户;

数据结构

字段emailnamepasswordcreate_timeverification_codestatuspointsphonelevelimage
名称用户邮箱用户名称密码创建时间验证码状态码积分电话级别头像
数据类型stringstringstringnumberstringnumbernumbernumberstring

用户状态:

  • 0:未激活
  • 1:激活
  • 2:封号
  • 4:注销

用户等级:

  • 0:普通用户
  • 1:VIP
  • 2:管理员
  • 3:超级管理员

D1数据库测试

写入测试

INSERT INTO users (email,username,password,create_time,verification_code,status,points,phone,level) VALUES ('lewis@gmail.com','微信机器人','',192312123,'xxxxxx',0,0,0,0)

读取测试

SELECT * FROM users