public function index(Auth $auth) { if (empty($_SESSION['logged_user'])) { $auth->authorize($to = null, $scope = 'snsapi_userinfo', $state = 'STATE'); $user = $auth->user(); Session::put('logged_user', $user->openid); // 跳转到其它授权才能访问的页面 } }
public function anyIndex(Request $request) { $auth = new Auth(env('WECHAT_APPID'), env('WECHAT_APPSECRET')); if (empty(session('logged_user'))) { $user = $auth->authorize($to = null, $scope = 'snsapi_userinfo', $state = 'STATE'); session(['logged_user' => $user]); return redirect('/api/wx'); } else { return redirect('/login')->with(['openid' => session('logged_user')['openid'], 'unionid' => session('logged_user')['unionid']]); } }
private function check_login() { if (!session()->has('user')) { //获取用户信息 $auth = new Auth($this->app_id, $this->secret); $user_info = $auth->authorize($to = null, $scope = 'snsapi_userinfo', $state = 'STATE'); $check = User::where("openid", $user_info->openid)->first(); //如果数据库没有用户记录,存入数据库 if (!$check) { $user = User::create(['openid' => $user_info->openid, 'sex' => $user_info->sex, 'nickname' => $user_info->nickname, 'city' => $user_info->city, 'province' => $user_info->province, 'headimgurl' => $user_info->headimgurl]); } else { //如果数据库中已经有了当前用户 $user = $check; } //用户信息存入session,并跳转到微商城首页 session()->put('user', $user); return back(); } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $appId = 'wx22be62c5077abcfe'; $secret = 'f364efc269da0f33e7f376e0ca4c9cc0'; $auth = new Auth($appId, $secret); $wxUser = Session::has("wxUser"); if (!$wxUser) { $user = $auth->authorize(null, 'snsapi_base'); $userService = new User($appId, $secret); $userInfo = $userService->get($user->openid); $wxUser = WxUser::getByOpenId($user->openid); if (!$wxUser) { $wxUser = WxUser::saveWxUser($userInfo); } else { $wxUser->updateWxUser($userInfo); } Session::put('wxUser', $wxUser); } return $next($request); }
public function callback(Request $request, Guard $auth, Auth $wxAuth) { $redirectTo = $request->query('redirectTo', '/'); $profile = $wxAuth->user(); $data = $profile->all(); $user = $auth->user(); try { $alias = $user->aliases()->where('provider', 'wechat')->where('type', 'openid')->firstOrFail(); if ($data['openid'] != $alias->alias) { return response('Forbidden.', 403); } else { $alias->data = $profile->toJson(); $alias->save(); } } catch (ModelNotFoundException $e) { $user->aliases()->create(['user_id' => $user->id, 'provider' => 'wechat', 'alias' => $data['openid'], 'type' => 'openid', 'data' => $profile->toJson()]); } $request->session()->put('openid', $data['openid']); return redirect($redirectTo); }
/** * @param string $jump_url * @return null|\Overtrue\Wechat\Utils\Bag */ public function authorizeUser($jump_url) { $appId = $this->_appId; $secret = $this->_secret; $auth = new Auth($appId, $secret); $result = $auth->authorize(url($jump_url), 'snsapi_base,snsapi_userinfo'); \Session::put('web_token', $result->get('access_token')); return $auth->getUser($result->get('openid'), $auth->access_token); }