/** * Exchange an auth code for an access token, then send the user back to * the home page, now logged in. * * @return mixed */ public function callback() { $auth_code = Input::get('code'); if ($auth_code) { $response = OAuth::token($auth_code); $access_token = $response['access_token']; $expiry_date = Carbon::now()->addSeconds($response['expires_in']); Session::set('access_token', $access_token); Session::set('access_token_expiry', $expiry_date); Api::setAccessToken($access_token); } return Redirect::to('/'); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $now = Carbon::now(); # look for a token in the session. list($token, $expiry) = $this->getSessionToken(); if ($token == null || $expiry->lte($now)) { # look for a token in the cache. list($token, $expiry) = $this->getCachedToken(); if ($token == null || $expiry->lte($now)) { # still nothing, then we'll have to get a new one. list($token, $expiry) = $this->getNewToken(); Cache::forever('access_token', $token); Cache::forever('access_token_expiry', $expiry); } } # store the access token in the session for later use. Session::set('access_token', $token); Session::set('access_token_expiry', $expiry); Api::setAccessToken($token); # permit the action. return $next($request); }