Beispiel #1
0
 /**
  * It creates an access token, a session, and links
  * scopes mentionned in $scopes to the session and
  * access token, it finally returns the new access token
  *
  * It associates the 'webapp' app
  */
 public static function createAccessTokenFromUserId($user_id, $scopes, $ttl = 3600)
 {
     $user = User::where('id', '=', $user_id)->first();
     if (!$user) {
         return false;
     }
     $session = new Session();
     $session->owner_type = 'user';
     $session->owner_id = $user->id;
     $session->app_id = 'webapp';
     $session->save();
     $accessToken = new AccessToken();
     $accessToken->session_id = $session->id;
     $accessToken->token = SecureKey::generate();
     $accessToken->expire_time = DB::raw('FROM_UNIXTIME(' . ($ttl + time()) . ')');
     $accessToken->save();
     foreach ($scopes as $_scope) {
         $scope = Scope::where('identifier', '=', $_scope)->first();
         if ($scope) {
             $session->scopes()->attach($scope);
             $accessToken->scopes()->attach($scope);
         }
     }
     $refreshToken = new RefreshToken();
     $refreshToken->access_token_id = $accessToken->id;
     $refreshToken->token = SecureKey::generate();
     $refreshToken->expire_time = DB::raw('FROM_UNIXTIME(' . (604800 + time()) . ')');
     $refreshToken->save();
     return ["token" => $accessToken->token, "refresh_token" => $refreshToken->token, "ttl" => $ttl];
 }
 /**
  * Triggers the given list of tasks
  * on each refresh token if task
  * is supported on refresh tokens
  */
 public function foreachRefreshToken($tasks)
 {
     $refreshTokens = RefreshToken::get();
     $this->outputStr("Analyzing " . sizeof($refreshTokens) . " refresh tokens...");
     $n_deleted = 0;
     foreach ($refreshTokens as $refreshTokens) {
         if (in_array('delete_lonely_RT', $tasks)) {
             if ($this->deleteLonelyRefreshToken($refreshTokens)) {
                 $n_deleted++;
             }
         }
     }
     if (in_array('delete_lonely_RT', $tasks) && $n_deleted > 0) {
         $this->outputStr(" deleted " . $n_deleted . " lonely refresh tokens.");
     }
     $this->outputStr("\n\n");
 }
 public function delete(RefreshTokenEntity $token)
 {
     $refreshToken = RefreshToken::where('token', '=', $token)->delete();
 }