我有一个应用程序,其工作原理如下:
- 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
但是,有没有一种方法可以在不使用查询参数的情况下重定向返回的数据?
1条答案
按热度按时间camsedfj1#
你的问题有点不清楚,因为你多次提到
token
,但有两个不同的令牌+一个“代码”。1.本地存储令牌
我怀疑您能否在第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
方法。