【问题标题】:Form credentials redirect to basic auth表单凭据重定向到基本身份验证
【发布时间】:2013-06-17 13:40:27
【问题描述】:

我有 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。

我做错了吗?

【问题讨论】:

    标签: php redirect basic-authentication


    【解决方案1】:

    您将客户端与服务器混淆了。不过经常混淆。

    简而言之,您不能告诉浏览器使用基本身份验证在其他网站上进行授权。期间。

    改用 cookie 和跨站点授权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      相关资源
      最近更新 更多