Skip to content

An authentication and authority management system based on Flask. 注意,只实现了基础的功能,有些写法比较初级,且缺少安全细节,后期有空再加。

Notifications You must be signed in to change notification settings

johnsonwangzs/AuthSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuthSystem

An authentication and authority management system based on Flask.

注意,只实现了基础的功能,有些写法比较初级(如未使用蓝图,数据库操作不够模块化),且缺少安全细节(如口令存储、防范各种网页攻击等),后期有空再加。

建议配合 https://github.com/johnsonwangzs/TestFlask 食用(使用了Flask蓝图等高级用法,以及Flask-Login、Flask-wtforms等扩展)。


使用说明

  1. 将所有文件下载并保存为一个Python项目。
  2. 安装Flask和Flash-Login。
  3. 将db目录下的createDB.sql作为MySQL脚本导入。
  4. 创建一个数据库用户,根据数据库具体配置修改app.py中用于连接数据库的常量。
  5. 在app.py下运行程序,浏览器打开http://127.0.0.1:5000。
  6. Enjoy yourself!

注:部分功能待实现。


用户身份认证及权限管理系统设计文档

1 主要功能

1.1 用户登录(身份认证)

根据用户id识别用户的身份:

  • 管理员
  • 普通用户

1.2 系统功能

1.2.1 权限管理(管理员)

1.2.2 用户信息展示

1.3 用户登出

点击登出按钮进行登出。

2 实现环境

  • Web(HTML+JavaScript+Bootstrap)
  • Flask+Python
  • MySQL

3 权限系统设计

3.1 数据库设计

source D://CODE/Python//Code//AuthenticationAndAuthorityManagementSystem//db//createDB.sql;
source D://CODE/Python//Code//AuthenticationAndAuthorityManagementSystem//db//dropDB.sql;

3.1.1 实体

用户账号表user_login(用户认证)——用于用户的登录(认证)

  • user_id——用户自己不能修改
  • password

用户表user_info(用户的基本信息)——保存用户的基本信息

  • user_id
  • name
  • nickname
  • phone
  • email
  • description

组表group_info(组信息)——多个用户可能属于一个组

  • group_id
  • group_name——财务处
  • group_description

角色表role_info(角色信息)——同一个角色可能对应多个用户

  • role_id
  • role_name——CEO
  • role_level——级别
  • role_description

应用表app_info(应用信息)

  • app_id
  • app_name——报销系统
  • app_description

3.1.2 关系设计

用户权限表user_authority(用户的权限信息)——用户属于唯一的组,具有唯一的角色

  • user_id
  • group_id
  • role_id

应用-组许可规则app_group_rule——决定特定组可以使用某个应用

  • app_group_rule_id
  • app_id
  • group_id

应用-角色许可规则app_role_rule——决定特定角色可以使用某个应用

  • app_role_rule_id
  • app_id
  • role_id

应用-用户许可规则app_user_rule——决定特定用户可以使用某个应用

  • app_user_rule_id
  • app_id
  • user_id

文件-组许可规则file_group_rule——决定特定组对某个文件的访问权限

  • file_group_rule_id
  • file_id
  • group_id
  • rule——读/写/修改等权限

文件-角色许可规则file_role_rule——决定特定角色对某个文件的访问权限

  • file_role_rule_id
  • file_id
  • role_id
  • rule

文件-用户许可规则file_user_rule——决定特定用户对某个文件的访问权限

  • file_user_rule_id
  • dile_id
  • user_id
  • rule

3.2 用户权限逻辑

应用规则决定特定组(app_group_rule)、特定角色(app_role_rule)、特定用户(app_user_rule)能够使用某个应用。

文件规则决定特定组、特定角色、特定用户对某项文件资源的访问权限。

在访问文件前,用户需要先对用于访问文件的应用具备相应权限。

About

An authentication and authority management system based on Flask. 注意,只实现了基础的功能,有些写法比较初级,且缺少安全细节,后期有空再加。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published