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

如何使用AT指令在ESP8266上获取Firebase的idToken(认证密钥)

解决ESP8266(ESP01)通过AT指令获取Firebase idToken的问题

你的核心错误是在AT+CIPSTART命令中传入了完整URL而非纯域名,谷歌身份工具API的连接和请求需要分两步走:先建立SSL连接到服务器域名,再发送标准HTTP POST请求获取token。

正确操作步骤:

1. 建立SSL连接到身份认证服务器

AT+CIPSTART仅需传入服务器域名,不能带https://、路径或参数,正确命令:

AT+CIPSTART="SSL","identitytoolkit.googleapis.com",443

收到CONNECT OK提示表示连接成功。

2. 构造并发送POST请求获取idToken

你需要构造符合HTTP规范的POST请求,将认证参数放在请求体中,示例如下(替换<API_KEY>、<邮箱>、<密码>为你的实际信息):

POST /v1/accounts:signInWithPassword?key=<API_KEY> HTTP/1.1
Host: identitytoolkit.googleapis.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 63  // 替换为请求体的实际字节数

email=<邮箱>&password=<密码>&returnSecureToken=true

3. 通过AT指令发送请求

  • 先执行AT+CIPSEND=<总长度>,这里的<总长度>是上述完整HTTP请求的总字节数(包括所有换行符\r\n)。
  • 当串口出现>提示符后,粘贴完整的HTTP请求内容并发送。

4. 解析响应获取idToken

服务器返回的JSON响应中,idToken字段即为所需的认证密钥。之后你就可以用这个token,在Firebase数据库的写入请求中添加?auth=<idToken>参数,完成带认证的写入操作。

额外注意事项:

  • 确保ESP8266的AT固件支持SSL(多数新版固件已支持),若连接失败可尝试升级固件。
  • HTTP请求中的换行必须用\r\n(CRLF),否则服务器可能无法正确解析。
  • Content-Length必须准确匹配请求体的字节数,否则请求会失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:07:03