如何在重定向到新域时确定上一个URL中的GET参数



我正在尝试检索请求标头(我不想修改它(,并通过检索:path属性来查看GET参数是什么。我在StackOverflow和其他网站上读过关于它的文章,但对于这是否可能,从来没有给出具体的答案。因此,问题来了:这可能吗?如果可能,怎么做?我可以访问这两个域:如果需要,我可以修改代码。

举个例子,假设我从domainA.com?p=qdomainB.com。在domainB.com中,我想知道哪个带有GET参数的URL将用户发送到domainB.com。在domainB.com中,我想从domainA.com中检索所有GET,或者清空:path属性。我想做一些类似window.history.back()的事情,但要么将用户发送回domainA.com,要么用GET参数检索URL。

编辑

$this->provider = new MollieOAuth2ClientProviderMollie([
'clientId'     => 'XXXXXXX',
'clientSecret' => 'XXXXX',
'redirectUri'  => 'https://example.com/oauth',
]);
if (!isset($_GET['code']))
{
// Fetch the authorization URL from the provider; this returns the
// urlAuthorize option and generates and applies any necessary parameters
// (e.g. state).
$authorizationUrl = $provider->getAuthorizationUrl([
// Optional, only use this if you want to ask for scopes the user previously denied.
'approval_prompt' => 'auto', 

// Optional, a list of scopes. Defaults to only 'organizations.read'.
'scope' => [
MollieOAuth2ClientProviderMollie::SCOPE_PAYMENTS_READ,
MollieOAuth2ClientProviderMollie::SCOPE_PAYMENTS_WRITE,
MollieOAuth2ClientProviderMollie::SCOPE_REFUNDS_READ,
MollieOAuth2ClientProviderMollie::SCOPE_REFUNDS_WRITE,
MollieOAuth2ClientProviderMollie::SCOPE_PROFILES_READ,
MollieOAuth2ClientProviderMollie::SCOPE_PROFILES_WRITE,
MollieOAuth2ClientProviderMollie::SCOPE_ONBOARDING_READ,
MollieOAuth2ClientProviderMollie::SCOPE_ORGANIZATIONS_READ,
MollieOAuth2ClientProviderMollie::SCOPE_ORGANIZATIONS_WRITE
], 
]);

// Get the state generated for you and store it to the session.
$_SESSION['oauth2state'] = $provider->getState();

// Redirect the user to the authorization URL.
header('Location: ' . "{$authorizationUrl}&return={$_SERVER['HTTP_HOST']}"); 
exit;
}

authorizationUrl,当用户单击"批准"时,它会将它们发送到提供程序中定义的重定向Uri它会将您发送到redrectUri,如下所示:https://example.com/oauth?code=xxx

在处理Oauth时有两种解决方案,一种是端点,即不同的网站(您可以访问该网站,也可以在其中修改代码(。

第一个是设置state参数并提供您的网站URL。在我的情况下,它可以通过$_SERVER["HTTP_HOST"]来实现。这会传递回您的redirect-uri。您也可以选择使用所谓的referer头,它告诉您是哪个域/服务器请求了该页面。

最新更新