---
title: 为什么打开工作区后不能自动登录
navTitle: 自动登录失败
---
# 为什么打开工作区后不能自动登录

SuccApp 登录成功后会保存本机认证状态，后续打开同一个工作区时会尝试自动连接服务器。如果每次打开都需要重新认证，通常不是本地项目文件损坏，而是服务器已经不再接受上次保存的 OAuth2 授权状态或 PAT。

## 常见原因{#reasons}

常见原因包括：

1. OAuth2 refresh token 已失效，或 PAT 已过期。
2. PAT 被用户或管理员撤销、禁用。
3. 用户状态、权限或登录安全策略发生变化。
4. 服务器认证配置升级后，要求重新授权。
5. 当前工作区切换到了另一个服务器地址，或服务器地址写法不同，例如端口不同、域名和 IP 混用。
6. 当前系统用户、远程开发环境或认证配置目录发生变化，导致 SuccApp 读不到之前保存的认证状态。

::: tip 提示
SuccApp 只在本地工作区配置中保存服务器地址，不保存 PAT、OAuth2 access token 或 refresh token。认证状态保存在本机 SuccApp 认证文件中，应避免提交到 Git 仓库。
:::

## 为什么 token 会失效{#token-expired}

SuccApp 和浏览器访问的是同一个 SuccApp 服务器，但 SuccApp 不复用浏览器 Cookie。默认 OAuth2 登录会保存短期 access token 和可轮换的 refresh token；access token 过期时 SuccApp 会自动刷新。refresh token 失效、PAT 过期或撤销、对应用户状态变化后，SuccApp 下次自动连接服务器时会被拒绝，并要求重新认证。

## 怎么处理{#solutions}

遇到自动登录失败时，可以按以下顺序处理：

1. 在 SuccApp 中执行 **SuccApp: 登录服务器**（英文界面为 **SuccApp: Login Server**）。
2. 确认当前工作区连接的是正确服务器地址，特别是协议、域名、IP 和端口是否一致。
3. 如果服务器地址或端口确实发生了变化，执行 **SuccApp: 设置服务器地址**（英文界面为 **SuccApp: Set Server URL**）。该命令会先验证新地址可以登录，再迁移本地服务器基线，最后更新配置；不会修改工作区中的项目文件。
4. 如果同一个账号同时用于测试脚本和 SuccApp，建议分别创建用途明确的 PAT，并设置合适的有效期。
5. 如果团队经常需要多端同时使用 SuccApp，请联系管理员检查 PAT、OAuth2 refresh token 和用户安全策略。
6. 如果重新认证后仍马上失效，检查服务器日志中是否存在 token 被拒绝、用户被禁用或权限不足记录。

重新认证不会删除服务器配置，也不会修改本地项目文件。服务器连接和登录服务器的入口，请阅读[连接服务器与下载元数据](../workspace/connect-and-clone.md#login)。

## 管理员可以检查什么{#admin-check}

管理员可以重点检查：

1. PAT 是否已过期、禁用或被撤销。
2. OAuth2 refresh token 的有效期和轮换策略是否符合团队使用方式。
3. 用户是否被禁用、移除权限或切换了用户目录。
4. 是否有测试脚本、压测工具或其他自动化任务复用了同一个 PAT。
5. 服务器日志中是否存在 token 校验失败、用户状态异常或权限不足记录。

如果现场有安全合规要求，不建议单纯为了减少重新认证而放宽 token 策略。可以优先使用专用账号、为不同自动化任务创建独立 PAT，或让 SuccApp 用户和自动化任务使用不同账号。
