用PHP进行HTTP认证

PHP的HTTP认证机制,就是用header()函数来向客户端浏览器发送“Authentication Required”信息,使其弹出一个用户名/密码输入窗口。当用户输入用户名和密码后,包含有URL的PHP脚本将会加上预定义变量PHP_AUTH_USERPHP_AUTH_PWAUTH_TYPE被再次调用,这三个变量分别被设定为用户名,密码和认证类型。预定义变量保存在 $_SERVER 或者 $HTTP_SERVER_VARS 数组中。支持“Basic”和“Digest”(自 PHP 5.1.0 起)认证方法。这是php官网的解释。
大家看示例体会。😁

参考连接:http://php.net/manual/zh/features.http-auth.php

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die('401 Unauthorized'.'<br> <button onclick="window.location.reload();">Login Again</button>');
} else {
if($_SERVER['PHP_AUTH_USER'] !== 'James Bond' || $_SERVER['PHP_AUTH_PW'] !== '007'){
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die('401 Unauthorized'.'<br> <button onclick="window.location.reload();">Login Again</button>');
}
}

//下面是你的业务代码

example-pic

这样就会弹出一个登陆框,输入用户名:James Bond 密码:007 登陆吧!

成功了没,哈哈,大家觉得是不是很好玩~

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信