You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:如何使用PowerShell创建/生成Bearer Token?

嘿,我来帮你搞定用PowerShell生成/获取Bearer Token的事儿!其实Bearer Token一般不是凭空“生成”的,大多是通过认证服务(比如OAuth 2.0、OpenID Connect)合法获取的;不过如果是用于测试场景,也可以手动生成JWT格式的Bearer Token。下面分两种常见场景详细说明:

通过OAuth 2.0客户端凭证流获取Bearer Token(生产常用)

这是最符合标准、适合生产环境的方式——用你的客户端身份信息(ID+密钥)向认证服务器请求Token。举个典型的例子:

# 替换成你的实际配置
$clientId = "your-client-id"
$clientSecret = "your-client-secret"
$tokenEndpoint = "https://your-auth-server.com/oauth2/token"
$apiScope = "api://your-api/access-permission" # 可选,部分服务需要指定访问范围

# 构造请求参数
$requestBody = @{
    grant_type    = "client_credentials"
    client_id     = $clientId
    client_secret = $clientSecret
    scope         = $apiScope
}

# 发送POST请求获取Token
$tokenResponse = Invoke-RestMethod -Uri $tokenEndpoint -Method Post -Body $requestBody -ContentType "application/x-www-form-urlencoded"

# 拼接成标准的Bearer Token格式(注意要加"Bearer "前缀)
$bearerToken = "Bearer $($tokenResponse.access_token)"

# 查看结果
Write-Host "获取到的Bearer Token: $bearerToken"

小提示:

  • 生产环境绝对不要硬编码客户端密钥,建议用环境变量(比如$env:CLIENT_SECRET)或者Azure Key Vault这类安全存储来读取敏感信息
  • 部分认证服务器要求用Basic Auth传递客户端信息,这时候可以添加请求头:-Headers @{Authorization = "Basic $([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$clientId:$clientSecret")))"}
手动生成JWT格式的Bearer Token(仅用于测试)

如果只是测试自己的API,不需要对接真实的认证服务,可以手动生成JWT作为Bearer Token。这里需要用到PowerShell的JWT模块:

# 先安装模块(需要管理员权限,首次运行时执行)
Install-Module -Name JWT -Scope CurrentUser -Force

# 导入模块
Import-Module JWT

# 自定义JWT的Payload内容(按需修改)
$jwtPayload = @{
    sub = "test-user-001"          # 用户ID
    name = "测试用户"              # 用户名
    exp = (Get-Date).AddHours(1).ToUniversalTime() | Get-Date -UFormat %s # 有效期1小时
    iss = "https://your-test-issuer.com" # 签发者
    aud = "https://your-test-api.com"   # 受众(你的API地址)
}

# 测试用的签名密钥(自己随便设,注意和API验证时用的密钥一致)
$secretKey = "your-test-secret-key-123"

# 生成JWT Token
$jwtToken = New-JWT -Payload $jwtPayload -Secret $secretKey -Algorithm HS256

# 拼接成Bearer Token
$bearerToken = "Bearer $jwtToken"

# 查看结果
Write-Host "测试用Bearer Token: $bearerToken"

注意:

这个方法仅适合本地测试,因为签名密钥是自己设定的,没有经过权威认证服务器的签发,在生产环境使用会有严重的安全风险。

内容的提问来源于stack exchange,提问作者Rakesh Suryawanshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:06:32