本章节主要讲解如果使用Thinkphp5进行登录功能实现 首先简单分析一下登录功能,由于不同的业务需要不同登录接口。所以登录实现功能也就不一样,在这这里我介绍一下几个常见的登录场景 ### 1.最简单的登录逻辑思维 * 获取前台账号和密码 * 查询对应的用户表 * 判断账号是否存在 * 不存在:返回一个错误提示信息(用户名不存在) * 存在:判断密码是否正确 * 不正确:返回一个错误提示信息(密码错误) * 正确:如果有其他限定条件在进行判断,这里就不做多余的判断。返回登录成功并且把用户的基本信息保存在session或则cookie中。以备后续使用 ### 2.记住登录(下次自动登录) * 这个和上面简单的登录逻辑思维差不多,我重点说一下登录正确之后的操作 * 将用户的基本信息保存在session中 ~~~ <input type="checkbox" name="islogin" /> <span>记住密码</span> ~~~ * 在进行一步判断,如果有islogin的就讲用户的基本信息加密保存在cookie中 ### 3.app接口登录 * 基本逻辑还是和最简单的差不多,这里只说正确之后的操作 * 首先是app只认识XML和JSON格式 {result:0,data:{"token":"1_1468120108402"}}//登陆成功 {result:1} // 没有相应用户名: {result:2}// 密码错误: {result:100}// 其它错误 * 如果正确,那么要传回其相应的token,用户得到其token之后,以后就可以使用这个token来调用其它的接口了。 ### 4.单点登录 什么是单点登录:一个账号只能同时一个人登录 基本逻辑: * 数据库验证,验证账号密码是否正确 * 验证成功之后操作如下: * 生成token * 把用户基本信息保存在session中 * 把token保存在cookie中 * 返回token信息 下面才是重点: * 获取session中用户的基本信息 * .判断是否存在改用户的基本信息 * 存在: * 获取cookie中的token * 重新再生成一个token2 * 然后进行token2和token进行比较,如果不等,说明登录异常,进行记录异常操作,退出登录,返回异地登录信息 token生成方式:(获取客户端ip地址+用户唯一的信息+服务端时间)进行特殊加密 # 忠告:不同的需求有不同的功能实现,但是万变都离不开最基础最简单的。