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

Unity Webview集成Plaid Link:oauth_state_id参数无效报错排查

Plaid OAuth Webview重定向报错排查:oauth_state_id无效

问题背景

  • 前端基于Unity Webview开发,严格按照Plaid OAuth Webview文档配置流程
  • 自定义重定向URI由AWS Lambda实现,核心逻辑:
    • 从请求Cookie中读取link_token
    • 从GET查询字符串中读取oauth_state_id
    • 返回302状态码,通过Location响应头重定向回Plaid指定地址
  • 重定向逻辑能正常触发,但始终收到报错:
    Error: oauth uri does not contain a valid oauth_state_id query parameter. Request ID: juLxa2qy7ZKzZ49
    
  • Lambda未对oauth_state_id做任何修改,重定向URI示例:
    https://cdn.plaid.com/link/v2/stable/link.html?isWebview=true&token=link-sandbox-02b9e581-c2e1-49d8-b0c0-6ac708535fd1&receivedRedirectUri=https%3A%2F%2Ftdfdfwpj.execute-api.us-west-1.amazonaws.com%2Fdev%2Fplaid-redirect-uri?oauth_state_id=f3d1fe8b-e444-42bb-855a-da5e89a4b796
    

排查方向及解决方法

1. 嵌套URL编码不完整

看示例里的receivedRedirectUri参数,其中嵌套的Lambda地址里的?没有被URL编码(正确编码应为%3F)。这会导致Plaid解析时,把oauth_state_id当成外层URL的参数,而非嵌套重定向URI的参数,自然无法识别为有效参数。

解决: 生成重定向的Location头时,把包含oauth_state_id的完整Lambda地址做全URL编码,再作为receivedRedirectUri的值传入。

2. Lambda返回的Location头格式错误

检查Lambda输出的302响应:

  • 确认receivedRedirectUri的值是完全编码后的完整Lambda地址(必须包含oauth_state_id参数)
  • 确保isWebview=true、token(即link_token)等必要参数没有遗漏或错误

3. Unity Webview的Cookie传递异常

确认Unity Webview在跳转到Lambda时,正确携带了包含link_token的Cookie。如果Cookie丢失,Lambda构造的重定向地址可能不符合Plaid要求,引发验证失败。建议在Lambda中加日志,打印收到的Cookie和查询参数,确认oauth_state_id确实被正确接收。

4. 参数读取拼写错误

检查Lambda代码中读取查询参数的逻辑,确保参数名严格是oauth_state_id,不要出现大小写错误(比如写成oauth_stateId)或拼写偏差。

调试技巧

  • 在Lambda中添加详细日志,记录收到的所有查询参数、Cookie内容,以及最终生成的Location头值,对比是否和预期一致。
  • 手动构造完全编码后的重定向URL,在普通浏览器中测试流程,排除Unity Webview的特殊环境影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:31:11