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 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); }