Flask 入门(6):登陆注销机制

本文主要内容为登陆和注销两种状态下的权限,一般的,我们不希望授予未登陆的用户查看网站内容的权限。这里用到了 Flask 中一种极为简单的认证方法Simple Authorization | Flask (A Python Microframework),snippets 是一个装饰器,使用方法超级简单,只需要把下面这段代码中的get_current_user_role()替换成你想要的判断逻辑,然后在加入到对应有权限限制的视图函数即可。

1
2
3
4
5
6
7
8
9
10
11
from functools import wraps

def requires_roles(*roles):
def wrapper(f):
@wraps(f)
def wrapped(*args, **kwargs):
if get_current_user_role() not in roles:
return error_response()
return f(*args, **kwargs)
return wrapped
return wrapper

下面是修改后的例子,如果登陆成功则该干嘛干嘛,否则跳转到登陆页面,提示需要登陆。

1
2
3
4
5
6
7
8
9
def is_logged_in(f):
@wraps(f)
def wrapped(*args, **kwargs):
if 'logged_in' in session:
return f(*args, **kwargs)
else:
flash('尚未登陆,请登陆', 'danger')
return redirect(url_for('login'))
return wrapped
觉得还不错?赞助一下~
0%