Help us learn about your current experience with the documentation. Take the survey.
活跃会话
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab 会列出所有已登录您账户的设备。您可以 查看这些会话,并撤销任何您不认识的会话。
列出所有活跃会话
要列出所有活跃会话:
- 在左侧边栏中,选择您的头像。
- 选择 编辑个人资料。
- 在左侧边栏中,选择 活跃会话。
活跃会话限制
GitLab 允许用户同时拥有最多 100 个活跃会话。如果活跃会话数量 超过 100,最旧的会话将被删除。
撤销会话
要撤销一个活跃会话:
- 在左侧边栏中,选择您的头像。
- 选择 编辑个人资料。
- 在左侧边栏中,选择 活跃会话。
- 选择会话旁边的 撤销。当前会话无法撤销,因为这会使您退出 GitLab。
当任何会话被撤销时,所有设备的 记住我 令牌都会被撤销。有关 记住我 的详细信息,请参阅 登录使用的 cookies。
通过 Rails 控制台撤销会话
您也可以通过 Rails 控制台撤销用户会话。您可以使用此功能同时撤销 多个会话。
撤销所有用户的所有会话
要撤销所有用户的所有会话:
-
可选。使用以下命令列出所有活跃会话:
ActiveSession.list(User.all) -
使用以下命令撤销所有会话:
ActiveSession.destroy_all -
使用以下命令验证会话已关闭:
# 显示所有有活跃会话的用户 puts "=== 当前登录用户 ===" 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}, 浏览器: #{session.browser}, 最后活跃时间: #{session.updated_at}" end end end
撤销单个用户的所有会话
要撤销特定用户的所有会话:
-
使用以下命令查找用户:
-
通过用户名:
user = User.find_by_username 'exampleuser' -
通过用户 ID:
user = User.find(123) -
通过电子邮件地址:
user = User.find_by(email: 'user@example.com')
-
-
可选。使用以下命令列出该用户的所有活跃会话:
ActiveSession.list(user) -
使用以下命令撤销所有会话:
ActiveSession.list(user).each { |session| ActiveSession.destroy_session(user, session.session_private_id) } -
使用以下命令验证所有会话已关闭:
# 如果所有会话都已关闭,将返回空数组。 ActiveSession.list(user)