public function accessTokenByCode(Request $request, $code) { $appId = \Config::get('vk_app.appId'); $appSecret = \Config::get('vk_app.appSecret'); $vk = new VK($appId, $appSecret); try { $getAccessToken = $vk->getAccessToken($code, 'https://oauth.vk.com/blank.html'); $accessToken = $getAccessToken['access_token']; } catch (VKException $e) { $accessToken = 'error!'; } return view('oauth.accessToken', ['accessToken' => $accessToken]); }
/** * @param $callbackUrl * @return mixed */ public function setAccessToken($callbackUrl) { if (Request::input('code')) { if (Session::has('vk.access_token')) { $this->accessToken = $this->getAccessToken(); } else { $this->accessToken = $this->vk->getAccessToken(Request::input('code'), $callbackUrl); if ($this->getAccessToken()) { Session::put('vk.access_token', $this->accessToken); } } } elseif ($this->getAccessToken()) { $this->accessToken = $this->getAccessToken(); } }
public function login(UserRepository $userRepo, Guard $auth) { $vk = new vk(env('VK_CLIENT_ID'), env('VK_CLIENT_SECRET')); try { $access_token = $vk->getAccessToken($_REQUEST['code'], env('VK_REDIRECT')); $data = $vk->api('users.get', ['uids' => $access_token['user_id'], 'fields' => 'first_name,last_name,photo_big,status,screen_name']); $user = $userRepo->findOrCreate($data['response'][0]); } catch (VKException $e) { Flash::error(trans('exceptions.auth.vk_exception')); return redirect($this->default_redirect); } $this->auth->login($user, true); if (!Session::has('user')) { Session::set('user', $user); } if (url()->previous() && strpos(url()->previous(), url('/')) !== false && url()->previous() != route('auth')) { return redirect(url()->previous()); } return redirect($this->default_redirect); }