
后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载prisma account是 Prisma 1 CLI 中用于展示已认证 Prisma Cloud 用户账号信息的命令。它基于~/.prisma/config.yml中保存的cloudSessionKey发起认证请求输出当前用户的用户名Name与邮箱地址Email并在未登录时给出登录引导。本文将结合该命令在 cli/packages/prisma-cli-core/src/commands/account/account.ts 中的真实实现讲解命令用法、认证数据来源、底层请求流程以及常见的 CI 场景实践。命令概览项目内容命令名prisma account所属分类platform平台类命令需要 Prisma Cloud 账号功能展示已认证的 Prisma Cloud 用户的账号信息用户名与邮箱数据来源~/.prisma/config.yml中的cloudSessionKey输出字段Email邮箱、Name用户名在源码 account.ts 中命令被定义为export default class Account extends Command { static topic account static description Display account information static group platform ... }topic决定了命令行入口为prisma accountgroup platform表明它隶属于平台/云相关命令族与prisma login、prisma console同组。Usageprisma account该命令不接收任何参数或 flags直接执行即可。运行时它会读取本地保存的云会话凭证向 Prisma Cloud API 查询当前账号信息。输出内容命令输出的账号信息包括Username用户名Email address邮箱地址实际输出格式由 account.ts 中的格式化逻辑决定this.out.log(\ Email: ${account!.login[0].email} Name: ${account!.name})即终端中会依次打印两行Email: youexample.com Name: your-username其中login[0].email表示账号的登录邮箱login是一个数组取第一项name表示显示名称。认证凭证cloudSessionKey 从哪里来prisma account展示的账号信息取决于当前机器上已保存的 Prisma Cloud 会话凭证即~/.prisma/config.yml中的cloudSessionKey字段。该凭证的存储结构在 cli/packages/prisma-yml/src/types/rc.ts 中定义export interface RC { cloudSessionKey?: string clusters?: Clusters }对应的本地配置文件路径为~/.prisma/config.yml由 Environment.ts 中的rcPath path.join(this.home, .prisma/config.yml)计算得出。凭证的写入与登录cloudSessionKey由prisma login命令写入。在 login.ts 中命令会调用client.login(key || this.env.cloudSessionKey)完成认证随后凭证通过 Environment.ts 的setToken保存到全局配置setToken(token: string | undefined) { this.globalRC.cloudSessionKey token }并在saveGlobalRC()Environment.ts中将cloudSessionKey与本地集群配置一并写回~/.prisma/config.ymlconst rc { cloudSessionKey: this.globalRC.cloudSessionKey ? this.globalRC.cloudSessionKey.trim() : undefined, clusters: this.getLocalClusterConfig(), }写入前会trim()去除首尾空白并经过 YAML 序列化后落盘。读取优先级环境变量优先读取凭证时并非只读配置文件。Environment.ts 中的 getter 体现了明确的优先级get cloudSessionKey(): string | undefined { return process.env.PRISMA_CLOUD_SESSION_KEY || this.globalRC.cloudSessionKey }即PRISMA_CLOUD_SESSION_KEY环境变量优先于~/.prisma/config.yml中的值。这一设计在 docs/1.2/04-Reference/07-CLI-Command-Reference/03-Cloud/01-prisma-login.md 中也有呼应官方文档建议在 CI 环境中直接通过环境变量注入会话密钥避免在流水线中维护配置文件。底层实现一次 GraphQL 查询prisma account的信息并非读取本地文件得出而是携带凭证向 Prisma Cloud API 发起 GraphQL 查询。核心调用链如下命令运行account.ts调用this.client.getAccount()查询组装Client.tsgetAccount()向云 API 发送如下 GraphQL 查询{ me { id name login { email } } }返回结果响应中的me对象即当前账号包含id、name与login[].email与命令输出字段一一对应。值得注意的是getAccount()不仅服务于prisma account还被isAuthenticated()Client.ts复用——它通过调用getAccount()判断当前是否已认证因此该查询也是 CLI 中是否已登录的权威判定手段。请求认证头云 API 请求通过 Environment.ts 的requestCloudApi发起请求头形如Authorization: Bearer ${this.cloudSessionKey}, X-Cli-Version: this.version,请求目标是https://api.cloud.prisma.sh。也就是说prisma account能否成功取决于本地cloudSessionKey是否有效、是否过期——而会话令牌本身是 JWTrenewToken 会在令牌剩余有效期不足 24 小时时自动尝试调用云 API 的renewTokenmutation 进行续期并将新令牌写回全局配置。未登录时的行为当本地没有有效凭证未执行过prisma login或cloudSessionKey缺失/失效时命令不会报出晦涩的堆栈错误而是打印提示并引导用户登录。对应实现见 account.ts} catch (e) { this.out.log( Currently not logged in. Run ${chalk.cyan(prisma1 login)} to login., ) }终端输出为Currently not logged in. Run prisma1 login to login.这提示了正确的补救路径先执行prisma login交互式浏览器认证或使用prisma login --key __KEY__手动传入云会话密钥完成认证再重新运行prisma account即可看到账号信息。相关命令与延伸阅读prisma login认证入口负责写入cloudSessionKey支持-k, --key KEYflag 及PRISMA_CLOUD_SESSION_KEY环境变量。prisma console打开 Prisma Cloud 控制台。凭证存储与续期实现Environment.ts、types/rc.ts。命令实现commands/account/account.ts云 API 查询Client/Client.ts。小结prisma account用于展示当前 Prisma Cloud 账号的用户名与邮箱无参数、无 flags。它依赖~/.prisma/config.yml中的cloudSessionKey且PRISMA_CLOUD_SESSION_KEY环境变量优先级更高适合 CI 场景。其原理是向https://api.cloud.prisma.sh发送携带Bearer令牌的 GraphQLme查询。未登录时会提示运行prisma login完成认证会话令牌临近过期时CLI 会自动尝试续期。赞分享后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载相关推荐Prisma CLI 参考prisma account 命令详解——查看 Prisma Cloud 账号信息Prisma CLI 参考 prisma account 命令详解——查看 Prisma Cloud 账号信息 prisma account 是 Prisma后端数据库GraphQLPrisma CLI prisma account 命令详解查看 Prisma Cloud 登录账户信息Prisma CLI prisma account 命令详解查看 Prisma Cloud 登录账户信息 导读 prisma account 是 Prisma后端数据库GraphQLprisma account 命令详解查看 Prisma Cloud 账户信息prisma account 命令详解查看 Prisma Cloud 账户信息 prisma account 是 Prisma CLIprisma1 时代命后端数据库GraphQL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考