javascript 如何在PHP中重定向传递的数据而不使用查询参数?

cvxl0en2  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(119)

我有一个应用程序,其工作原理如下:

  • index.html加载index.js
  • index.js在本地存储上查找令牌,没有找到,并使用window.location.href = "auth.php";重定向到auth.php
  • auth.php使用header("Location: external-api.com/login");重定向到external-api.com
  • 用户登录到他们的平台,该平台使用get request重定向回auth.php
  • php然后external-api.com使用该代码和一些其他参数发布到www.example.com,并收到一个带有实际访问令牌的响应
  • auth.php使用header("Location: index.html?token=".$token);重定向回index.html

但是,有没有一种方法可以在不使用查询参数的情况下重定向返回的数据?

camsedfj

camsedfj1#

你的问题有点不清楚,因为你多次提到token,但有两个不同的令牌+一个“代码”。
1.本地存储令牌

  1. external-api发送用户到auth.php?代码=some_code
  2. auth.php向external-api发送POST请求并获取ACCESS TOKEN
    我怀疑您能否在第2步中隐藏代码(这取决于外部API的工作方式)&您不能在第1步中隐藏令牌(因为它在客户端机器上的本地存储中)。因此,我假设您试图在重定向回index.html时隐藏从POST请求到external-api接收的ACCESS TOKEN
    因此,假设您需要隐藏标记的唯一位置是在header("Location: index.html?token=".$token);期间,那么您可以使用$_SESSION['token'] = $token,然后只需使用header("Location: index.html);并在请求index.html期间检索$_SESSION['token']
    此外,您可以将ACCESS TOKENMap到内部代码,并将内部代码传递给用户。这样,用户就不能直接从external-api请求用户信息。
    您可能会对使用POST数据的PHP重定向感兴趣,我在这里进一步详细介绍了$_SESSION方法。

相关问题