Login.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\admin\controller;
  3. use think\Controller;
  4. use think\Request;
  5. use think\Db;
  6. class Login extends Controller{
  7. public function lst(){
  8. $post_token = input('post.TOKEN');//先接收token传过来的值(因为用的layui表单监听提交,可以不用判断是post提交)
  9. if(!checkToken($post_token)){//验证token如果重复提交则跳转到指定界面
  10. $this->redirect('admin/index/server');//已经登录的用户在重复访问登录页面则跳转到登录后的页面
  11. }
  12. if (request()->isPost()){
  13. $data['uname'] = input('uname');
  14. $data['upass'] = md5(input('upass'));
  15. //从数据库读取数据
  16. $info = db('user')->where($data)->find();
  17. if($info){
  18. $login_data['last_login_time']=time(); //获取当前登录时间
  19. $login_data['last_login_ip'] = $this->request->ip();//获取当前登录ip
  20. $login = db('user')->where($data)->update($login_data);// 更新当前用户信息
  21. if($login){
  22. // session('uname',$info['uname']);
  23. // session('id',$info['id']);
  24. createToken();//登录成功时创建一个新token
  25. timeout(259220);//设置一个过期时间(60:代表1分钟,259220:代表3天(60(秒)*60(分)*24(小时)=1天),以此换算)259220
  26. session('admin_auth',$info);//$info(相当于直接将这个数组中id 和uname存入session)
  27. insert_admin_log('登录操作');//写入日志表
  28. return 1;
  29. }else{
  30. return 3;
  31. }
  32. }else{
  33. return 2;
  34. }
  35. }else{
  36. //如果不是post,则返回登陆界面
  37. return view();
  38. }
  39. }
  40. public function logout(){
  41. //退出登录
  42. session(null);//退出清空session
  43. //url("/lst"):为后台登录地址,设置路由进行替换的(在route.php中查看)
  44. return $this->redirect(url('/lst'));//跳转到登录页面
  45. }
  46. }