Login.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. * User: nickbai
  4. * Date: 2017/10/24 10:46
  5. * Email: 1902822973@qq.com
  6. */
  7. namespace app\admin\controller;
  8. use think\Controller;
  9. class Login extends Controller
  10. {
  11. // 稳定性测试
  12. /*public function aaaa()
  13. {
  14. $accounts = db('accounts')->select();
  15. $this->assign([
  16. 'accounts' => json_encode($accounts),
  17. 'socket' => config('socket'),
  18. ]);
  19. return $this->fetch();
  20. }*/
  21. // 登录首页
  22. public function index()
  23. {
  24. $this->assign([
  25. 'version' => config('version')
  26. ]);
  27. return $this->fetch();
  28. }
  29. // 处理登录
  30. public function doLogin()
  31. {
  32. if(request()->isPost()){
  33. $userName = input("param.user_name/s");
  34. $password = input("param.password/s");
  35. if(empty($userName)){
  36. return json(['code' => -1, 'data' => '', 'msg' => '用户名不能为空']);
  37. }
  38. if(empty($password)){
  39. return json(['code' => -2, 'data' => '', 'msg' => '密码不能为空']);
  40. }
  41. $userInfo = db('admins')->where('user_name', $userName)->find();
  42. if(empty($userInfo)){
  43. return json(['code' => -3, 'data' => '', 'msg' => '管理员不存在']);
  44. }
  45. if(md5($password . config('salt')) != $userInfo['password']){
  46. return json(['code' => -4, 'data' => '', 'msg' => '密码错误']);
  47. }
  48. if(1 != $userInfo['status']){
  49. return json(['code' => -5, 'data' => '', 'msg' => '您已被禁用']);
  50. }
  51. $group = db('admingroup')->where('group_id', $userInfo['group_id'])->find();
  52. if(1 != $group['status']){
  53. return json(['code' => -6, 'data' => '', 'msg' => '您的权限角色已被禁用']);
  54. }
  55. session('user_name',$userName);
  56. session('user_id',$userInfo['id']);
  57. // 登陆成功 生成token
  58. $module = mt_rand(100000,999999);
  59. $token = base64_encode($module.'#$@%!^*/'.time().'/'.$userInfo['id']);
  60. // 更新管理员状态
  61. $param = [
  62. 'last_login_ip' => request()->ip(),
  63. 'token' => $token,
  64. 'expire_time' => time(),
  65. 'last_login_time' => time()
  66. ];
  67. db('admins')->where('id', $userInfo['id'])->update($param);
  68. session('token', $token);
  69. $this->assign([
  70. 'token' => $token,
  71. 'user_name' => $userName
  72. ]);
  73. return json(['code' => 1, 'data' => url('index/index'), 'msg' => '登录成功']);
  74. }
  75. }
  76. public function loginOut()
  77. {
  78. session(null);
  79. $this->redirect(url('login/index'));
  80. }
  81. }