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);
         // 跳转到其它授权才能访问的页面
     }
 }
Exemple #2
0
 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();
     }
 }
Exemple #4
0
 /**
  * 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);
 }
Exemple #6
0
 /**
  * @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);
 }