Login.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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')) && checkPasswordSecurity()) {
  43. //验证失败
  44. ds_json_encode(10001, lang('wrong_checkcode'));
  45. }
  46. $condition = array();
  47. $condition[] = array('admin_name', '=', $admin_name);
  48. $condition[] = array('admin_password', '=', md5($admin_password));
  49. $admin_mod = model('admin');
  50. $admin_info = $admin_mod->getOneAdmin($condition);
  51. if (is_array($admin_info) and !empty($admin_info)) {
  52. //更新 admin 最新信息
  53. $update_info = array(
  54. 'admin_login_num' => ($admin_info['admin_login_num'] + 1),
  55. 'admin_login_time' => TIMESTAMP
  56. );
  57. $admin_mod->editAdmin($update_info, $admin_info['admin_id']);
  58. //设置 session
  59. session('admin_id', $admin_info['admin_id']);
  60. session('admin_name', $admin_info['admin_name']);
  61. session('admin_gid', $admin_info['admin_gid']);
  62. session('admin_is_super', $admin_info['admin_is_super']);
  63. ds_json_encode(10000, lang('login_succ'), '', '', false);
  64. } else {
  65. ds_json_encode(10001, lang('login_error'));
  66. }
  67. } else {
  68. return View::fetch();
  69. }
  70. }
  71. public function logout()
  72. {
  73. //设置 session
  74. session(null);
  75. ds_json_encode(10000, lang('logout_succ'), '', '', false);
  76. }
  77. /**
  78. *产生验证码
  79. */
  80. public function makecode()
  81. {
  82. $config = [
  83. 'fontSize' => 20, // // 验证码字体大小
  84. 'length' => 4, // 验证码位数
  85. 'useNoise' => false, //是否添加杂点
  86. 'useCurve' => true,
  87. 'imageH' => 50, //高度
  88. 'imageW' => 150,
  89. ];
  90. config($config, 'captcha');
  91. $captcha = Captcha::create();
  92. return $captcha;
  93. }
  94. }