Example #1
0
 /**
  * @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();
 }
Example #2
0
 public static function setSessionData($appId = null, $userId = null)
 {
     $appInfo = $appId ? App::getCachedInfo($appId) : null;
     $userInfo = $userId ? User::getCachedInfo($userId) : null;
     $roleId = null;
     if (!empty($userId) && !empty($appId)) {
         $roleId = static::getRoleIdByAppIdAndUserId($appId, $userId);
     }
     if (empty($roleId) && !empty($appInfo)) {
         $roleId = ArrayUtils::get($appInfo, 'role_id');
     }
     Session::setUserInfo($userInfo);
     Session::put('app.id', $appId);
     $roleInfo = $roleId ? Role::getCachedInfo($roleId) : null;
     if (!empty($roleInfo)) {
         Session::put('role.id', $roleId);
         Session::put('role.name', $roleInfo['name']);
         Session::put('role.services', $roleInfo['role_service_access_by_role_id']);
     }
     $systemLookup = Lookup::getCachedLookups();
     $systemLookup = !empty($systemLookup) ? $systemLookup : [];
     $appLookup = !empty($appInfo['app_lookup_by_app_id']) ? $appInfo['app_lookup_by_app_id'] : [];
     $roleLookup = !empty($roleInfo['role_lookup_by_role_id']) ? $roleInfo['role_lookup_by_role_id'] : [];
     $userLookup = !empty($userInfo['user_lookup_by_user_id']) ? $userInfo['user_lookup_by_user_id'] : [];
     $combinedLookup = LookupKey::combineLookups($systemLookup, $appLookup, $roleLookup, $userLookup);
     Session::put('lookup', ArrayUtils::get($combinedLookup, 'lookup'));
     Session::put('lookup_secret', ArrayUtils::get($combinedLookup, 'lookup_secret'));
 }