LoginController.php 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Http\Requests;
  5. use App\Http\Controllers\Controller;
  6. use App\Common\Api;
  7. use App\Services\AghApiService;
  8. use App\Models\Admin;
  9. use Illuminate\Support\Facades\Log;
  10. use Illuminate\Support\Facades\Redis;
  11. class LoginController extends Controller
  12. {
  13. public function __construct(){
  14. }
  15. /**
  16. * 登良
  17. */
  18. public function LoginIndex(Request $request){
  19. $user_info = $request->session()->get('userInfo');
  20. if(!is_null($user_info)) {
  21. if ($user_info['is_admin'] == 1) {
  22. //超管跳转
  23. return redirect('manage/super');
  24. } else {
  25. //普通管理员跳转
  26. //钉钉和微信跳转区分
  27. if(env('APP_ENV') != "dingtalk") {
  28. if (empty($user_info['admin_user_id'])) {
  29. return redirect('manage/static/index.html#/Gameindex');
  30. } else {
  31. return redirect('manage/static/index.html#/Gamecenter');
  32. }
  33. } else {
  34. return redirect('manage/static/index.html#/dingtalk');
  35. }
  36. }
  37. }
  38. return redirect('manage/static/index.html#/Login');
  39. }
  40. /**
  41. * 登录校验
  42. * username varchar()
  43. * password varchar()
  44. * 2018-05-08 16:37 韩
  45. */
  46. public function checkLogin(Request $request){
  47. $params = $request->all();
  48. $password = md5($params['password']);
  49. $res = Admin::where('username', $params['username'])
  50. ->where('password', $password)
  51. ->where('status', 1) //1 正常 0 冻结
  52. ->first();
  53. if($res){
  54. //用户信息缓存
  55. $request->session()->put('userInfo', $res);
  56. Log::debug($res);
  57. $user_admin = collect($res)->toArray();
  58. return Api::json(config('code.success'), trans('msg.login_success'), $user_admin['is_admin']);
  59. } else {
  60. return Api::json(config('code.fail'), trans('msg.login_error'));
  61. }
  62. }
  63. /**
  64. * 获取用户信息
  65. * @param Request $request
  66. * @return string
  67. */
  68. public function getBaseAdmin(Request $request){
  69. $user_info = $request->session()->get('userInfo');
  70. if($user_info['corp_id'] != 0){
  71. $user_info['corp_short_name'] = Corps::where('corp_id', $user_info['corp_id'])->value('corp_short_name');
  72. }
  73. return Api::json(config('code.success'), trans('msg.success'), $user_info);
  74. }
  75. /**
  76. * 退出登录
  77. */
  78. public function logout(Request $request){
  79. $request->session()->forget('userInfo');
  80. return redirect('manage');
  81. // return Api::json(config('code.success'), trans('msg.success'));
  82. }
  83. /**
  84. * 单点登录接口
  85. * @param Request $request
  86. * @return string
  87. */
  88. public function sso(Request $request){
  89. $params = $request->all();
  90. $token = $params['token'];
  91. $redirect = empty($params['redirect'])?'':$params['redirect'];
  92. if(empty($token)){
  93. return Api::json(config('code.params_error'), trans('msg.params_error'));
  94. }
  95. $adminId = Redis::get('b_sso_token:'.$token);
  96. if($adminId){
  97. $adminInfo = Admin::where('id', $adminId)->where('status', 1)->first();
  98. if(!empty($adminInfo)){
  99. $request->session()->put('userInfo', $adminInfo);
  100. if(empty($redirect)){
  101. return redirect("/manage");
  102. } else {
  103. header("location:".$redirect);
  104. }
  105. } else {
  106. return '认证失败';
  107. }
  108. } else {
  109. return '认证失败';
  110. }
  111. }
  112. /**
  113. * cookie写入接口
  114. * @param Request $request
  115. * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  116. */
  117. public function setCookie(Request $request){
  118. $activityId = $request->get('activity_id');
  119. $username = $request->get('username');
  120. $name = $request->get('name');
  121. // $adminInfo = $request->session()->get('userInfo');
  122. setcookie('oauth_open_id', $username, 0, "/", env("COOKIE_DOMAIN"));
  123. setcookie('oauth_avatar', '', 0, "/", env("COOKIE_DOMAIN"));
  124. setcookie('oauth_nickname', $name, 0, "/", env("COOKIE_DOMAIN"));
  125. setcookie('oauth_platform', 'wechat', 0, "/", env("COOKIE_DOMAIN"));
  126. setcookie('oauth_guid', $username, 0, "/", env("COOKIE_DOMAIN"));
  127. setcookie('oauth_gcorp_id', '', 0, "/", env("COOKIE_DOMAIN"));
  128. return redirect(env('WEB_URL').'/brainstorming?activity_id='.$activityId);
  129. }
  130. }
  131. ?>