用户登录流程
1.普通用户登录:
失去焦点判断账户名是否存在(并返回是否显示验证码)接口
/pcuser-tologin?action=check_login&user_name=?
登录按钮接口
登录时要根据该用户的错误登陆次数,进行是否验证码的校验,如果登录错误次数大于5,则强制进行验证码的校验
/pcuser-tologin?action=to_login&user_name=?&password=?&code=?
第一次登录
(1)输入密码正确,登录成功
(2)输入密码不正确,将用户账号和'code'拼接用md5加密后作为键,过期时间设置为一个小$redis>set($key,1,3600),进行下一次登录
---->错误登录后,再次登陆
(1)输入密码正确,登录成功,并且清空该用户redis里面存入的值$redis->del($key)
(2)输入密码不正确,取出用户输入的错误次数$error_num = $redis->get($key)再加一之后($error_num++)存入redis,$redis->set($key,$error_num,3600)
载登录页面之前,首先要判断是否显示验证码。方法是:在用户名input框失去焦点返回相应数据,并且登录失败返回相应数据(从redis中取出该用户的输入错误次数,如果大于5次则显示验证码)
$error_num = $redis->get($key)//$key为用户账号和‘code’字符串拼接,然后进行md5加密
2.第三方登录:
点击第三方登录按钮,在登录之后会返回(appid,user_info,time,签名认证,登录方式)首先根据登录方式,判断使用什么查询条件。根据得到的appid到数据库中查询是否有该appid以及该appid是否绑定手机号
(1)appid不存在:进入绑定手机号页面,需要将user_info分配到该页面。
如果输入的手机号在数据库中无记录,则向数据库插入一条新的数据
如果输入的手机号在数据库中有记录并且该手机号并未绑定该登录方式的appid,则更新该手机号对应的数据
如果输入的手机号在数据库中有记录并且绑定过该登录方式的appid,则提醒手机号已绑定
(2)appid存在,但手机号不存在(针对老用户):进入绑定手机号页面,需要将user_info分配到该页面。
如果输入的手机号在数据库中无记录,则更新该appid对应的手机号
如果输入的手机号在数据库中有记录,并且该手机号并未绑定该登录方式的appid,则更新该手机号对应的数据
如果输入的手机号在数据库中有记录并且绑定过该登录方式的appid,则提醒手机号已绑定
(3)appid存在,手机号也存在:登录成功
3.关于手机验证码的问题:
当前存入手机验证码:$key = $this->get_sms_key($phone,code);
$redis->set($key,$code,600)//十分钟内有效
现在修改为:$key = $this->get_sms_key($phone,code);
$redis->set($key,$code,86400)//一天内有效
添加过期时间:$key_expire = $key.’expire’
$redis->set($key_expire,time()+600,86400)//过期时间设为十分钟
验证码为空:提示验证码为空
验证码错误:接收到的验证码与从reids中取出来的不一致
验证码过期:接收到的验证码与从reids中取出来的一致,但是时间过期time()大于$redis->get($key_expire)
验证码正确:成功