Login.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 index()
  13. {
  14. $this->assign([
  15. 'version' => config('version')
  16. ]);
  17. return $this->fetch();
  18. }
  19. // 处理登录
  20. public function doLogin()
  21. {
  22. if(request()->isPost()){
  23. $userName = input("param.user_name/s");
  24. $password = input("param.password/s");
  25. if(empty($userName)){
  26. return json(['code' => -1, 'data' => '', 'msg' => '用户名不能为空']);
  27. }
  28. if(empty($password)){
  29. return json(['code' => -2, 'data' => '', 'msg' => '密码不能为空']);
  30. }
  31. $userInfo = db('admins')->where('user_name', $userName)->find();
  32. if(empty($userInfo)){
  33. return json(['code' => -3, 'data' => '', 'msg' => '管理员不存在']);
  34. }
  35. if(md5($password . config('salt')) != $userInfo['password']){
  36. return json(['code' => -4, 'data' => '', 'msg' => '密码错误']);
  37. }
  38. if(1 != $userInfo['status']){
  39. return json(['code' => -5, 'data' => '', 'msg' => '您已被禁用']);
  40. }
  41. session('user_name',$userName);
  42. session('user_id',$userInfo['id']);
  43. // 登陆成功 生成token
  44. $module = mt_rand(100000,999999);
  45. $token = base64_encode($module.'#$@%!^*/'.time().'/'.$userInfo['id']);
  46. // 更新管理员状态
  47. $param = [
  48. 'last_login_ip' => request()->ip(),
  49. 'token' => $token,
  50. 'expire_time' => time(),
  51. 'last_login_time' => time()
  52. ];
  53. db('admins')->where('id', $userInfo['id'])->update($param);
  54. session('token', $token);
  55. $this->assign([
  56. 'token' => $token,
  57. 'user_name' => $userName
  58. ]);
  59. return json(['code' => 1, 'data' => url('index/index'), 'msg' => '登录成功']);
  60. }
  61. }
  62. public function loginOut()
  63. {
  64. $this->redirect(url('login/index'));
  65. }
  66. }