Header函数和PHP_AUTH_USER做用户验证

在做爬虫的时候看到的一个函数
function auth_login($auth_uname, $auth_pw)
{
		// If no username and password was set in the conf
		if ($auth_uname == "" || $auth_pw == "")
		{
		  echo "Login for phpcrawl-testinterface not configured yet.<br>
		        Please choose a login-username and password and put it into
		        the configurartion-file \"phpcrawl_testinterface.conf.php\"<br>
		        located in the test-interface path.";
		  exit;
		}
		// If uname and/or passwod wasnt't typed in or is wrong
		elseif (!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"])
		        || $_SERVER["PHP_AUTH_USER"] != $auth_uname
		        || $_SERVER["PHP_AUTH_PW"] != $auth_pw)
		{
		  header('WWW-Authenticate: Basic realm="phpcrawl-testinterface"');
		  header('HTTP/1.0 401 Unauthorized');
		  exit;
		}
}

调用的效果是弹窗的方式验证用户名和密码




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Django 中实现用户登录注册页面需要以下步骤: 1. 创建 Django 项目和应用程序 2. 安装 Django 自带的用户认证系统(django.contrib.auth) 3. 创建视图函数(views.py)和路由(urls.py)来处理用户登录和注册功能 4. 创建登录和注册表单(forms.py)和模板(templates) 5. 配置项目的 settings.py 文件,包括设置登录和注册的 URL 路径、模板路径、静态文件路径等 6. 在模板中实现用户界面和表单 7. 在视图函数中实现用户验证用户登录和注册等功能 以下是一个简单的示例: 1. 创建 Django 项目和应用程序 ``` $ django-admin startproject myproject $ python manage.py startapp myapp ``` 2. 安装 Django 自带的用户认证系统(django.contrib.auth) 在 settings.py 文件中添加以下配置: ``` INSTALLED_APPS = [ ... 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ... ] MIDDLEWARE = [ ... 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ... ] ``` 3. 创建视图函数(views.py)和路由(urls.py)来处理用户登录和注册功能 ```python from django.shortcuts import render, redirect from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib.auth import login, logout def login_view(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST) if form.is_valid(): user = form.get_user() login(request, user) return redirect('home') else: form = AuthenticationForm() return render(request, 'login.html', {'form': form}) def register_view(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect('home') else: form = UserCreationForm() return render(request, 'register.html', {'form': form}) ``` 在 urls.py 文件中添加以下路由: ```python from django.urls import path from .views import login_view, register_view urlpatterns = [ path('login/', login_view, name='login'), path('register/', register_view, name='register'), ] ``` 4. 创建登录和注册表单(forms.py)和模板(templates) 在 myapp 文件夹下创建 forms.py 文件: ```python from django.contrib.auth.forms import AuthenticationForm, UserCreationForm class LoginForm(AuthenticationForm): pass class RegisterForm(UserCreationForm): pass ``` 在 myapp/templates 文件夹下创建 login.html 模板文件: ```html {% extends 'base.html' %} {% block content %} <h2>Login</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Login</button> </form> {% endblock %} ``` 在 myapp/templates 文件夹下创建 register.html 模板文件: ```html {% extends 'base.html' %} {% block content %} <h2>Register</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Register</button> </form> {% endblock %} ``` 5. 配置项目的 settings.py 文件 在 settings.py 文件中添加以下配置: ```python TEMPLATES = [ { ... 'APP_DIRS': True, ... }, ] STATICFILES_DIRS = [ BASE_DIR / "static", ] LOGIN_REDIRECT_URL = 'home' LOGOUT_REDIRECT_URL = 'home' ``` 6. 在模板中实现用户界面和表单 在 myapp/templates 文件夹下创建 base.html 模板文件,用于包含公共头部和底部,其他模板可以继承它: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>{% block title %}{% endblock %}</title> <link rel="stylesheet" href="{% static 'css/main.css' %}"> </head> <body> <header> <nav> <ul> <li><a href="{% url 'home' %}">Home</a></li> {% if user.is_authenticated %} <li><a href="{% url 'logout' %}">Logout</a></li> {% else %} <li><a href="{% url 'login' %}">Login</a></li> <li><a href="{% url 'register' %}">Register</a></li> {% endif %} </ul> </nav> </header> <main> {% block content %}{% endblock %} </main> <footer> © 2021 My Site </footer> </body> </html> ``` 7. 在视图函数中实现用户验证用户登录和注册等功能 用户登录和注册功能已经在视图函数中实现了,包括表单验证用户信息保存。具体实现方式请参考上面的代码示例。 至此,一个简单的 Django 用户登录注册页面就完成了。在实际项目中,还需要加入更多的功能和安全措施,例如邮箱验证、密码重置、用户权限控制等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值