Login.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | [ WE CAN DO IT MORE SIMPLE ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2018-2020 rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: TABLE ME
  8. // +----------------------------------------------------------------------
  9. // | Date: 2020-08-25 17:23
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\admin\controller;
  13. //use app\model\admin\Product;
  14. use app\model\admin\Admin;
  15. use app\model\admin\AdminMenu;
  16. use app\Request;
  17. use library\exceptions\GeneralException;
  18. use library\lib\weixina;
  19. use library\services\UtilService;
  20. use library\utils\Captcha;
  21. use library\utils\Qiniu;
  22. use think\facade\Db;
  23. class Login
  24. {
  25. /**
  26. * 用户登录端
  27. * @param Request $request
  28. */
  29. public function index(Request $request)
  30. {
  31. [$account, $pwd, $imgcode] = UtilService::getMore([
  32. ['account','','empty','请输入登录账户'],
  33. ['pwd','','empty','请输入登录密码'],
  34. ['imgcode','','empty','验证码不能为空'],
  35. ],$request,true);
  36. //当前站点信息(中间件获取)
  37. $site = $request->site;
  38. if (!(new Captcha)->check($imgcode)) {
  39. return app('json')->fail('验证码错误,请重新输入');
  40. }
  41. //获取登录
  42. $adminInfo = Admin::login($account,$pwd,$site['sassid']);
  43. if(empty($adminInfo)) {
  44. return app('json')->fail(Admin::getErrorInfo('用户名错误,请重新输入'));
  45. }
  46. //生成令牌
  47. $token = Admin::createToken($adminInfo, 'admin');
  48. if(empty($token)) {
  49. return app('json')->fail(Admin::getErrorInfo());
  50. }
  51. //获取管理菜单
  52. $menuMenu = new AdminMenu();
  53. $menuMenu->setSassId($site['sassid']);
  54. $menus = $menuMenu->getRoute($adminInfo->role_id);
  55. return app('json')->success([
  56. 'token' => $token['token'],
  57. 'expires_time' => $token['params']['exp'],
  58. 'menus' => $menus,
  59. 'user_info' => [
  60. 'id' => $adminInfo->getData('id'),
  61. 'sassid' => $adminInfo->getData('sassid'),
  62. 'username' => $adminInfo->getData('username'),
  63. 'name' => $adminInfo->getData('name'),
  64. 'avatar' => $adminInfo->getData('avatar')
  65. ],
  66. ]);
  67. }
  68. /**
  69. * 用户发生退出
  70. */
  71. public function logut(){
  72. }
  73. /**
  74. * 验证码
  75. * @return \app\adminapi\controller\Login|\think\Response
  76. */
  77. public function captcha()
  78. {
  79. return (new Captcha())->create();
  80. }
  81. }