public function refresh() { $oldToken = JWTAuth::getToken(); // try { $newToken = JWTAuth::refresh($oldToken); // } catch (Exception $e) { // return $this->response->errorBadRequest($e); // } return $newToken; }
/** * @return string * @throws \DreamFactory\Core\Exceptions\UnauthorizedException */ public static function refreshToken() { $token = Session::getSessionToken(); try { $newToken = \JWTAuth::refresh($token); $payload = \JWTAuth::getPayload($newToken); $userId = $payload->get('user_id'); $user = User::find($userId); $userInfo = $user->toArray(); ArrayUtils::set($userInfo, 'is_sys_admin', $user->is_sys_admin); Session::setSessionToken($newToken); Session::setUserInfo($userInfo); static::setTokenMap($payload, $newToken); } catch (TokenExpiredException $e) { $payloadArray = \JWTAuth::manager()->getJWTProvider()->decode($token); $forever = boolval(ArrayUtils::get($payloadArray, 'forever')); if ($forever) { $userId = ArrayUtils::get($payloadArray, 'user_id'); $user = User::find($userId); Session::setUserInfoWithJWT($user, $forever); } else { throw new UnauthorizedException($e->getMessage()); } } return Session::getSessionToken(); }
Route::post('users', array('uses' => 'UsersController@postIndex', 'as' => 'register')); Route::post('users/login', array('uses' => 'UsersController@postLogin', 'as' => 'login')); Route::post('users/forgot', array('uses' => 'UsersController@postForgot', 'as' => 'forgot')); Route::post('users/reset', array('uses' => 'UsersController@postReset', 'as' => 'reset')); Route::get('users/confirm/{code}', array('uses' => 'UsersController@getConfirm', 'as' => 'confirm')); Route::get('users/reset_password/{token}', array('uses' => 'UsersController@getReset', 'as' => 'reset')); Route::post('users/reset_password', array('uses' => 'UsersController@postReset')); Route::resource('docs', 'DocsController', array('except' => array('create', 'edit'))); Route::group(array('protected' => true, 'providers' => 'jwt'), function () { Route::get('users', function () { return API::user(); }); Route::put('users/{id}', array('as' => 'updateUser', 'uses' => 'UsersController@putIndex')); Route::get('users/logout', array('as' => 'logout', 'uses' => 'UsersController@getLogout')); Route::post('creators', array('as' => 'create.creator', 'uses' => 'CreatorsController@store')); Route::put('creators', array('as' => 'update.creator', 'uses' => 'CreatorsController@update')); Route::get('creators', array('as' => 'get.creator', 'uses' => 'CreatorsController@show')); /** * Scheduler routes */ Route::resource('scheduler', 'SchedulersController'); }); }); Route::post('refresh', function () { $token = Input::get('token'); return JWTAuth::refresh($token); }); Route::get('storage_path', function () { return storage_path(); }); Route::get('storeMetaCron', array('uses' => 'MetadatasController@storeMetaCron'));