Login.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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. * ============================================================================
  10. * 版权所有 2014-2028 浙江惠利玛产业互联网有限公司,并保留所有权利。
  11. * 网站地址: https://www.valimart.net/
  12. * ----------------------------------------------------------------------------
  13. *
  14. * ============================================================================
  15. * 控制器
  16. */
  17. class Login extends AdminControl
  18. {
  19. public function initialize()
  20. {
  21. parent::initialize();
  22. Lang::load(base_path() . 'admin/lang/' . config('lang.default_lang') . '/login.lang.php');
  23. }
  24. public function index()
  25. {
  26. if (session('admin_id')) {
  27. $this->success(lang('already_logged'), 'Index/index');
  28. }
  29. if (request()->isPost()) {
  30. $admin_name = input('post.admin_name');
  31. $admin_password = input('post.admin_password');
  32. $captcha = input('post.captcha');
  33. $data = array(
  34. 'admin_name' => $admin_name,
  35. 'admin_password' => $admin_password,
  36. 'captcha' => $captcha,
  37. );
  38. $login_validate = ds_validate('admin');
  39. if (!$login_validate->scene('index')->check($data)) {
  40. ds_json_encode(10001, $login_validate->getError());
  41. }
  42. if (!captcha_check(input('post.captcha'))) {
  43. //验证失败
  44. ds_json_encode(10001, lang('wrong_checkcode'));
  45. }
  46. $check_res = checkPasswordSecurity();
  47. if (!$check_res) return;
  48. $condition = array();
  49. $condition[] = array('admin_name', '=', $admin_name);
  50. $condition[] = array('admin_password', '=', md5($admin_password));
  51. $admin_mod = model('admin');
  52. $admin_info = $admin_mod->getOneAdmin($condition);
  53. if (is_array($admin_info) and !empty($admin_info)) {
  54. //更新 admin 最新信息
  55. $update_info = array(
  56. 'admin_login_num' => ($admin_info['admin_login_num'] + 1),
  57. 'admin_login_time' => TIMESTAMP
  58. );
  59. $admin_mod->editAdmin($update_info, $admin_info['admin_id']);
  60. //设置 session
  61. session('admin_id', $admin_info['admin_id']);
  62. session('admin_name', $admin_info['admin_name']);
  63. session('admin_gid', $admin_info['admin_gid']);
  64. session('admin_is_super', $admin_info['admin_is_super']);
  65. ds_json_encode(10000, lang('login_succ'), '', '', false);
  66. } else {
  67. ds_json_encode(10001, lang('login_error'));
  68. }
  69. } else {
  70. return View::fetch();
  71. }
  72. }
  73. public function logout()
  74. {
  75. //设置 session
  76. session(null);
  77. ds_json_encode(10000, lang('logout_succ'), '', '', false);
  78. }
  79. /**
  80. *产生验证码
  81. */
  82. public function makecode()
  83. {
  84. $config = [
  85. 'fontSize' => 20, // // 验证码字体大小
  86. 'length' => 4, // 验证码位数
  87. 'useNoise' => false, //是否添加杂点
  88. 'useCurve' => true,
  89. 'imageH' => 50, //高度
  90. 'imageW' => 150,
  91. ];
  92. config($config, 'captcha');
  93. $captcha = Captcha::create();
  94. return $captcha;
  95. }
  96. }