正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

アクティブセッション

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLabは、あなたのアカウントにログインしたすべてのデバイスをリストします。セッションをレビューし、認識できないものは失効できます。

すべてのアクティブなセッションをリスト

すべてのアクティブなセッションをリストするには:

  1. 左側のサイドバーで、自分のアバターを選択します。
  2. プロファイルの編集を選択します。
  3. 左側のサイドバーで、アクティブなセッションを選択します。

アクティブセッションリスト

アクティブなセッションの制限

GitLabでは、ユーザーは一度に最大100個のアクティブなセッションを持つことができます。アクティブなセッションの数が100を超えると、最も古いものが削除されます。

セッションを失効する

アクティブなセッションを失効するには:

  1. 左側のサイドバーで、自分のアバターを選択します。
  2. プロファイルの編集を選択します。
  3. 左側のサイドバーで、アクティブなセッションを選択します。
  4. セッションの横にある取り消しを選択します。現在のセッションは、GitLabからサインアウトされるため、失効できません。

セッションが失効すると、すべてのデバイスのすべてのログイン情報を記憶するトークンが失効します。ログイン情報を記憶するの詳細については、サインインに使用されるCookieを参照してください。

Railsコンソールからセッションを失効する

Railsコンソールからユーザーセッションを失効することもできます。これを使用して、複数のセッションを同時に失効できます。

すべてのユーザーのすべてのセッションを失効する

すべてのユーザーのすべてのセッションを失効するには:

  1. Railsコンソールセッションを開始します

  2. オプション。次のコマンドですべてのアクティブなセッションをリストします:

    ActiveSession.list(User.all)
  3. 次のコマンドですべてのセッションを失効します:

    ActiveSession.destroy_all
  4. 次のコマンドでセッションが閉じていることを確認します:

    # Show all users with active sessions
     puts "=== Currently Logged In Users ==="
     User.find_each do |user|
         sessions = ActiveSession.list(user)
         if sessions.any?
             puts "\n#{user.username} (#{user.name}):"
             sessions.each do |session|
                 puts "  - IP: #{session.ip_address}, Browser: #{session.browser}, Last active: #{session.updated_at}"
             end
         end
     end

ユーザーのすべてのセッションを失効する

特定のユーザーのすべてのセッションを失効するには:

  1. Railsコンソールセッションを開始します

  2. 次のコマンドでユーザーを見つけます:

    • ユーザー名:

      user = User.find_by_username 'exampleuser'
    • ユーザーID:

      user = User.find(123)
    • メールアドレス:

      user = User.find_by(email: 'user@example.com')
  3. オプション。次のコマンドを使用して、ユーザーのすべてのアクティブなセッションをリストします:

    ActiveSession.list(user)
  4. 次のコマンドですべてのセッションを失効します:

    ActiveSession.list(user).each { |session| ActiveSession.destroy_session(user, session.session_private_id) }
  5. 次のコマンドですべてのセッションが閉じていることを確認します:

    # If all sessions are closed, returns an empty array.
    ActiveSession.list(user)