我有site1.com有基本身份验证表格,用户和通行证 site2.com有基本的身份验证。 当用户在site1.com中提交他的通行证和用户名时,我需要将他们重定向到site2.com,而无需提交基本的身份验证凭据,因为他们只是在site1.com上输入它们
<?php
if($_SESSION['http_logged'] != 1) {
}
if (!isset($_SERVER['PHP_AUTH_USER'])|| !isset($_SERVER['PHP_AUTH_PW']) ) {
header('WWW-Authenticate: Basic realm="Good day"');
header('HTTP/1.0 401 Unauthorized');
echo "<html><head><title>401 Authorization Required</title></head><body>";
echo "<h1>Authorization Required</h1>";
$_SESSION['http_logged'] = 1;
exit;
} else {
$credentials=$_SERVER['PHP_AUTH_USER'].":".$_SERVER['PHP_AUTH_PW'];
header('Location: site2.com');
header("Authorization: Basic " . base64_encode($credentials));
$_SESSION['http_logged'] = 0;
}
?>
我有两个问题: 1.当用户按下取消并返回页面后,只有在重新启动浏览器后,才会显示基本身份验证表单 2.发送到site2.com的凭证不会按授权进入site2.com。
我做错了吗?
答案 0 :(得分:-1)
您将客户端与服务器混淆。虽然经常混淆。
简而言之,您无法告诉浏览器使用基本身份验证在其他网站上进行授权。周期。强>
使用Cookie和跨站点授权。