用VB演示对Auth的理解及代码实现一(引言篇)

微信公众号:@网管小贾

个人博客:@www.sysadm.cc


曹先生笔下的《红楼梦》不愧是文学史上的瑰宝。

其中刘姥姥二进荣国府一回,人物展现得生动有趣、非常经典。

刘姥姥一介乡下村妇,平日里粗茶淡饭惯了的她进府后却吃了些油腻食物,又去栊翠庵吃了妙玉几盏茶水,结果闹了肚子。

如完厕后不见了众人,于是自己胡乱行走,竟误入了怡红院,还睡了宝玉的床。

这还了得!出事儿了,出大事儿了!

如果有人看着点姥姥,如果大观园有权限机制,是不是不会出现这样的乌龙事件?

好了,让我们一起来看看,怎么把 Auth 权限认证套到大观园的安保权限问题上!


先来简单介绍一下 Auth 权限认证是个啥。

它是通过给用户赋予不同的角色来实现权限认证,而不同角色具有不同权限。

而相较于其他一些权限认证(如 RBAC)的好处是,它可以实现更细化的权限认证。

比如,在一个大HOUSE里,有很多很多的房间,Auth 可以实现每个房间一把不同于其他房间的钥匙。

甚至房间里的每个橱柜、每个抽屉,都可以有一把不同的钥匙。

像大观园这种级别的HOUSE,放眼现今绝对算是房地产的翘楚,城市后花园档次的标志性建筑。

在建筑群中,它排第三没谁敢说自己是第二。(别扛,第一是紫禁城,这个没得说)

Auth 权限认证可以说和大观园很配哦!


好,我们看看当前的需求。

先来罗列一下居所和主人、丫环们的关系:

序号房子主人主丫鬟
1怡红院宝玉袭人、晴雯、麝月、秋纹
2潇湘馆黛玉雪雁、紫鹃
3蘅芜苑宝钗莺儿
左右滑动查看表格

再看看权限说明:

  1. 各房子的主人可自由出入每个房子。
  2. 自家丫鬟只可出入自家房子。
  3. 袭人、晴雯可以出入潇湘馆。
  4. 莺儿可以出入怡红院。

为了让小白们都能看得懂,以上需求做了大大的简化。

那么,使用 Auth 实现权限认证具体从何入手呢?

别着急,我想宝二爷的心情也和你一样,敬请期待下一篇《用VB演示对Auth的理解及代码实现二(原理篇)》

关注网管小贾博客,阅读更多。

微信公众号:@网管小贾

个人博客:@www.sysadm.cc

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个比较完整的auth.py代码示例: ```python from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib.auth.models import User from django.shortcuts import render, redirect def login_view(request): if request.method == 'POST': form = AuthenticationForm(request, request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') user = authenticate(username=username, password=password) if user is not None: login(request, user) return redirect('home') else: form = AuthenticationForm() return render(request, 'login.html', {'form': form}) def logout_view(request): logout(request) return redirect('login') def register_view(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): form.save() username = form.cleaned_data.get('username') password = form.cleaned_data.get('password1') user = authenticate(username=username, password=password) login(request, user) return redirect('home') else: form = UserCreationForm() return render(request, 'register.html', {'form': form}) @login_required def home_view(request): return render(request, 'home.html') ``` 这段代码包含了用户认证、登录、注销和注册等功能的实现。其中,`login_view()`函数实现了用户登录功能,`logout_view()`函数实现了用户注销功能,`register_view()`函数实现了用户注册功能,`home_view()`函数则是一个简单的登录后页面。 需要注意的是,在这个示例中,我们使用了Django内置的认证表单`AuthenticationForm`和用户创建表单`UserCreationForm`,这些表单类提供了一些基本的验证和字段,可以方便地实现用户认证和注册功能。另外,我们还使用了`@login_required`装饰器来限制只有登录后才能访问的页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网管小贾

将技术融入生活,打造有趣之故事

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值