Login.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\View;
  4. use think\facade\Lang;
  5. use think\captcha\facade\Captcha;
  6. /**
  7. * 控制器
  8. */
  9. class Login extends AdminControl
  10. {
  11. public function initialize()
  12. {
  13. parent::initialize();
  14. Lang::load(base_path() . 'admin/lang/' . config('lang.default_lang') . '/login.lang.php');
  15. }
  16. public function index()
  17. {
  18. if (session('admin_id')) {
  19. $this->success(lang('already_logged'), 'Index/index');
  20. }
  21. if (request()->isPost()) {
  22. $admin_name = input('post.admin_name');
  23. $admin_password = input('post.admin_password');
  24. $captcha = input('post.captcha');
  25. $data = array(
  26. 'admin_name' => $admin_name,
  27. 'admin_password' => $admin_password,
  28. 'captcha' => $captcha,
  29. );
  30. $login_validate = ds_validate('admin');
  31. if (!$login_validate->scene('index')->check($data)) {
  32. ds_json_encode(10001, $login_validate->getError());
  33. }
  34. if (!captcha_check(input('post.captcha'))) {
  35. //验证失败
  36. ds_json_encode(10001, lang('wrong_checkcode'));
  37. }
  38. $res = checkPasswordSecurity();
  39. if (!$res) return;
  40. $condition = array();
  41. $condition[] = array('admin_name', '=', $admin_name);
  42. $condition[] = array('admin_password', '=', md5($admin_password));
  43. $admin_mod = model('admin');
  44. $admin_info = $admin_mod->getOneAdmin($condition);
  45. if (is_array($admin_info) and !empty($admin_info)) {
  46. //更新 admin 最新信息
  47. $update_info = array(
  48. 'admin_login_num' => ($admin_info['admin_login_num'] + 1),
  49. 'admin_login_time' => TIMESTAMP
  50. );
  51. $admin_mod->editAdmin($update_info, $admin_info['admin_id']);
  52. //设置 session
  53. session('admin_id', $admin_info['admin_id']);
  54. session('admin_name', $admin_info['admin_name']);
  55. session('admin_gid', $admin_info['admin_gid']);
  56. session('admin_is_super', $admin_info['admin_is_super']);
  57. ds_json_encode(10000, lang('login_succ'), '', '', false);
  58. } else {
  59. ds_json_encode(10001, lang('login_error'));
  60. }
  61. } else {
  62. return View::fetch();
  63. }
  64. }
  65. public function logout()
  66. {
  67. //设置 session
  68. session(null);
  69. ds_json_encode(10000, lang('logout_succ'), '', '', false);
  70. }
  71. /**
  72. *产生验证码
  73. */
  74. public function makecode()
  75. {
  76. $config = [
  77. 'fontSize' => 20, // // 验证码字体大小
  78. 'length' => 4, // 验证码位数
  79. 'useNoise' => false, //是否添加杂点
  80. 'useCurve' => true,
  81. 'imageH' => 50, //高度
  82. 'imageW' => 150,
  83. ];
  84. config($config, 'captcha');
  85. $captcha = Captcha::create();
  86. return $captcha;
  87. }
  88. }