| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 | 
							- <?php
 
- namespace App\Http\Controllers\Api\Auth;
 
- use App\Models\Company;
 
- use App\Models\Member;
 
- use App\Models\MemberInfo;
 
- use App\Models\ThirdToken;
 
- use App\Models\WechatAuth;
 
- use Illuminate\Http\Request;
 
- use App\Http\Controllers\Api\ApiBaseController;
 
- use Illuminate\Support\Facades\Validator;
 
- use App\Services\Auth\AuthService;
 
- use Illuminate\Support\Facades\Auth;
 
- use App\Services\Common\WechatService;
 
- class AuthController extends ApiBaseController
 
- {
 
-     
 
-     protected $authService;
 
-     private $wechatService;
 
-     
 
-     public function __construct(
 
-         AuthService $authService,
 
-         WechatService $wechatService
 
-     )
 
-     {
 
-         $this->authService   = $authService;
 
-         $this->wechatService = $wechatService;
 
-     }
 
-     public function loginByAccount(Request $request)
 
-     {
 
-         
 
-         $rules       = [
 
-             'account'  => 'required',
 
-             'password' => 'required',
 
-         ];
 
-         $messages    = [
 
-             'account.required'  => '请输入用户名',
 
-             'password.required' => '请输入密码',
 
-         ];
 
-         $create_data = $request->all();
 
-         $validator   = Validator::make($create_data, $rules, $messages);
 
-         if ($validator->fails()) {
 
-             $msg = $validator->errors()->all();
 
-             return response()->json(['status' => 0, 'msg' => $msg[0]]);
 
-         } else {
 
-             if (!$member = $this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) {
 
-                 return $this->sendErrorResponse("账号或密码错误", []);
 
-             }
 
-             if ($member->status == 0) {
 
-                 Auth::guard('api-member')->logout();
 
-                 return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员");
 
-             }
 
-             return response()->json([
 
-                 'message' => 'Successfully created user!',
 
-             ], 201);
 
-         }
 
-     }
 
-     
 
-     public function wechatAuth(Request $request)
 
-     {
 
-         
 
-         $app_id       = subsite_config('aix.system.oauth.wechat_official.app_id');
 
-         $redirect_uri = urlencode(route('api.auth.wechat_auth_back'));
 
-         $url          = $request->input('url', '');
 
-         if (empty($url)) {
 
-             return response()->json(['status' => 0, 'msg' => '请调写回调地址']);
 
-         }
 
-         $state = $request->input('state', '');
 
-         
 
-         $auth = WechatAuth::create(['url' => $url, 'state' => $state]);
 
-         
 
-         $wechat_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$auth['id']}#wechat_redirect";
 
-         return redirect($wechat_url);
 
-     }
 
-     
 
-     public function wechatAuthBack(Request $request)
 
-     {
 
-         
 
-         $officialAccount = $this->wechatService->getOfficialAccount();
 
-         $wechatUser      = $officialAccount->oauth->user()->getOriginal();
 
-         
 
-         $id                  = $request->input('state');
 
-         $auth                = WechatAuth::where('id', $id)->first();
 
-         $wechatUser['state'] = $auth['state'];
 
-         unset($wechatUser['privilege']);
 
-         
 
-         $formItemString = '';
 
-         foreach ($wechatUser as $key => $value) {
 
-             $formItemString .= "<input name='{$key}' type='text' value='{$value}'/>";
 
-         }
 
-         
 
-         $content = <<<EOF
 
- <form style= 'display:none'  name= 'submit_form'  id= 'submit_form'  action= '{$auth["url"]}'  method= 'post' >
 
- { $formItemString }
 
- </form>
 
- <script type= "text/javascript" >
 
- document.submit_form.submit();
 
- </script>
 
- EOF;
 
-         exit ($content);
 
-     }
 
-     public function test(Request $request)
 
-     {
 
-         dd($request->post());
 
-     }
 
-     
 
-     public function getInfoByToken(Request $request)
 
-     {
 
-         $token = $request->header('token');
 
-         if (empty($token)) {
 
-             return response()->json([
 
-                 'code'    => 2,
 
-                 'message' => '请输入token',
 
-             ]);
 
-         }
 
-         $token_info = ThirdToken::where('token', $token)->first();
 
-         if (empty($token_info)) {
 
-             return response()->json([
 
-                 'code'    => 2,
 
-                 'message' => 'token错误',
 
-             ]);
 
-         }
 
-         $expire = strtotime($token_info['expire_at']);
 
-         if ($expire < time()) {
 
-             return response()->json([
 
-                 'code'    => 2,
 
-                 'message' => 'token已过期',
 
-             ]);
 
-         }
 
-         if ($token_info['id'] != 130) {
 
-             $token_info->expire_at = date('Y-m-d H:i:s', time() + 7200);
 
-             $token_info->save();
 
-         }
 
-         
 
-         if ($token_info['type'] == 1) {
 
-             $member      = Member::where('id', $token_info['type_id'])->first();
 
-             $member_info = MemberInfo::where('uid', $token_info['type_id'])->first();
 
-             $info        = [
 
-                 'id'       => $token_info['type_id'],
 
-                 'type'     => 1,
 
-                 'realname' => $member_info['realname'],
 
-                 'avatar'   => $member['avatars'] ? upload_asset($member['avatars']) : '',
 
-                 'sex'      => $member_info['sex'],
 
-                 'mobile'   => $member['mobile'],
 
-                 'email'    => $member['email'],
 
-             ];
 
-         } elseif ($token_info['type'] == 2) {
 
-             $company = Company::where('id', $token_info['type_id'])->first();
 
-             $info    = [
 
-                 'id'          => $token_info['type_id'],
 
-                 'type'        => 2,
 
-                 'companyname' => $company['companyname'],
 
-                 'logo'        => $company['logo'] ? upload_asset($company['logo']) : '',
 
-                 'mobile'      => $company['mobile'],
 
-                 'email'       => $company['email'],
 
-                 'address'     => $company['address'],
 
-                 'contact'     => $company['contact'],
 
-             ];
 
-         }
 
-         return response()->json([
 
-             'code'    => 1,
 
-             'data'    => $info,
 
-             'message' => '成功',
 
-         ]);
 
-     }
 
- }
 
 
  |