当前位置: 首页 > wzjs >正文

众筹网站怎么做推广站长工具seo综合查询可以访问

众筹网站怎么做推广,站长工具seo综合查询可以访问,seo比较好的公司,广告类型有哪几种项目文档:springboot应用的登录功能和权限认证 一、项目概述 1. 项目简介 本项目是在一个基于Spring Boot的Web应用中实现登录功能和权限认证。要求实现登录功能,用户登录成功以后,会给前台返回当前登录用户可以访问的权限菜单,比如超级管理员可以访问所有权限,产品管理…

项目文档:springboot应用的登录功能和权限认证

一、项目概述

1. 项目简介

本项目是在一个基于Spring Boot的Web应用中实现登录功能和权限认证。要求实现登录功能,用户登录成功以后,会给前台返回当前登录用户可以访问的权限菜单,比如超级管理员可以访问所有权限,产品管理员只能返回产品管理相关权限,登录失败或未登录时无法访问其他接口。

2. 环境准备

2.1. 工具和软件准备

  • JDK(建议版本:JDK11)
  • IDE(建议IntelliJ IDEA)
  • Maven(用于构建和管理项目)
  • 数据库(Mysql)
  • Apifox (接口测试)

2.2. 技术栈准备

  • Spring Boot:用于快速搭建应用程序框架
  • Spring Web:用于构建接口
  • Mybatis:用于数据库操作和持久化

3.功能介绍

3.1 登录功能

  • 用户通过用户名和密码进行身份验证。

3.2 身份认证

  • 通过session来实现未登录时不能访问除了登录接口以外的其它功能接口

想实现未登录时无法访问其他接口,可以使用多种方式,比如:jwt,session等,jwt适用于分布式系统和微服务架构,session 管理适合中小型单体 Web 应用,我们这里是一个基于 session 的实现方案。

3.3 权限认证

  • 基于角色的访问控制(Role-based Access Control,RBAC)。
  • 确保用户在访问受限资源时进行权限验证。
  • 定义不同角色对应的权限级别和访问范围。

为了实现没有权限的用户不能访问接口,可以采用以下两种方法来进行权限控制:

  1. 在前端进行权限控制:在前端页面渲染时,根据用户的权限来决定显示哪些菜单或按钮。如果用户没有相应的权限,则不显示相应的操作入口。
  2. 在后端进行权限验证:在后端控制器或服务层对用户的权限进行验证,如果用户没有权限则返回相应的错误信息。

我们这里采用的是第1种:在前端进行权限控制,当不同的用户登录进来以后,后端会给前端返回允许的权限菜单。

在中级的第一个项目里面,我们是采用的第2种:通过shiro框架在后端进行权限验证。

二、数据库设计

Mysql中创建数据库test_db,添加相关表和测试数据。

访问控制模型比较常用的是RBAC模型,也就是基于角色(Role)的访问控制,简单来说,就是通过将权限分配给角色,再将角色分配给用户,来实现对系统资源的访问控制。一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多的关系,表设计如下:

用户表(user)

  • user_id(主键,自增):用户ID
  • username:用户名
  • password:密码(加密存储)

角色表(role)

  • role_id(主键,自增):角色ID
  • role_name:角色名称

权限表(permission)

  • permission_id(主键,自增):权限ID
  • permission_name:权限名称
  • pid: 父id

用户角色关系表(user_role)

  • user_id(复合主键,外键,关联用户表)
  • role_id:(复合主键,外键,关联权限表)

角色权限关联表(role_permission)

  • role_id(复合主键,外键,关联角色表)
  • permission_id(复合主键,外键,关联权限表)

这样的设计可以实现以下功能:

  • 每个用户可以被分配一个或多个角色。
  • 每个角色可以拥有一个或多个权限。
  • 每个权限可以被分配给一个或多个角色。

再加上菜单表和角色和菜单的关系表

菜单表(menu)

  • menu_id(主键,自增): 菜单唯一标识。
  • menu_name(非空): 菜单名称。
  • parent_menu_id(外键,关联自身表的menu_id): 父菜单ID,表示菜单的层级结构。
  • url: 菜单对应的URL。
  • permission_id(外键,关联权限表): 菜单关联的权限ID。

角色菜单关联表(role_menu)

  • role_id(复合主键,外键,关联角色表): 角色唯一标识。
  • menu_id(复合主键,外键,关联菜单表): 菜单唯一标识。

​ 参考代码:

CREATE TABLE user (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50),password VARCHAR(255)
);CREATE TABLE role (role_id INT AUTO_INCREMENT PRIMARY KEY,role_name VARCHAR(50)
);CREATE TABLE permission (permission_id INT AUTO_INCREMENT PRIMARY KEY,permission_name VARCHAR(50),pid int
);CREATE TABLE user_role (user_id INT,role_id INT,PRIMARY KEY (user_id, role_id),FOREIGN KEY (user_id) REFERENCES user(user_id),FOREIGN KEY (role_id) REFERENCES role(role_id)
);CREATE TABLE role_permission (role_id INT,permission_id INT,PRIMARY KEY (role_id, permission_id),FOREIGN KEY (role_id) REFERENCES role(role_id),FOREIGN KEY (permission_id) REFERENCES permission(permission_id)
);CREATE TABLE menu (menu_id INT AUTO_INCREMENT PRIMARY KEY,menu_name VARCHAR(100) NOT NULL,parent_menu_id INT,url VARCHAR(255),permission_id INT,FOREIGN KEY (parent_menu_id) REFERENCES menu(menu_id),FOREIGN KEY (permission_id) REFERENCES permission(permission_id)
);CREATE TABLE role_menu (role_id INT,menu_id INT,PRIMARY KEY (role_id, menu_id),FOREIGN KEY (role_id) REFERENCES role(role_id),FOREIGN KEY (menu_id) REFERENCES menu(menu_id)
);-- 添加用户数据
INSERT INTO user (username, password) VALUES
('admin', 'admin123'),
('manager1', 'manager123'),
('analyst1', 'analyst123');-- 添加角色数据
INSERT INTO role (role_name) VALUES
('admin'),
('manager'),
('analyst');-- 添加权限数据
INSERT INTO permission (permission_name) VALUES
('product:create'),
('product:update'),
('product:delete'),
('product:query'),
('report:query');-- 分配用户角色
INSERT INTO user_role (user_id, role_id) VALUES
(1, 1),
(2, 2),
(3, 3);-- 分配角色权限
INSERT INTO role_permission (role_id, permission_id) VALUES
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5),
(2, 1), (2, 2), (2, 3), (2, 4),
(3, 4), (3, 5);-- 插入菜单数据
INSERT INTO menu (menu_name, parent_menu_id, url, permission_id) VALUES
('产品管理', null, '/product/query', 4),
('报表管理', null, null, 5), 
('添加产品', 1, '/product/create', 1),
('修改产品', 1, '/product/edit',2), 
('删除产品', 1, '/product/delete',3),
('查询产品', 1, '/product/query',4),
('查询报表', 2, '/report/query',5);-- 插入角色菜单数据
INSERT INTO role_menu (role_id, menu_id) VALUES
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), -- admin 拥有所有菜单
(2, 1), (2, 3),(2, 4), (2, 5) , (2, 6),-- manager 拥有产品管理相关菜单
(3, 2),(3, 7); -- analyst 拥有查看帖子管理菜单

三、创建项目

1. 创建SpringBoot项目

https://start.aliyun.com/

使用脚手架创建springboot项目,并将创建的代码在idea中打开

在这里插入图片描述

在这里插入图片描述

添加配置文件

通过云原生脚手架创建出来的项目默认没有resources目录,可以手动创建一下

在main文件夹上右键选择->新建->目录->新建目录->取名为resources

http://www.dtcms.com/wzjs/248430.html

相关文章:

  • 安徽奶茶加盟网站建设成都百度搜索排名优化
  • 石家庄做网站建设的公司哪家好上海百度推广电话客服
  • 有关大学生做兼职的网站有哪些列举网络推广的方式
  • 信用中国 网站 支持建设写软文用什么软件
  • 喜茶品牌策划全案案例四川seo排名
  • 游戏开发软件手机版seo推广哪家公司好
  • 高流量网站设计浏览器打开
  • 网站一般用什么架构seo文章代写平台
  • 做网站需要会什么百度客户端下载
  • html网站前台模板百度首页百度一下
  • 做的比较好的政府网站今日新闻50字
  • 网站公安备案流程免费跨国浏览器
  • 只做英文网站 域名有什么要求官网优化哪家专业
  • 荆州网站推广怎么做腾讯企点qq
  • 网站快速排名的方法宁波seo企业网络推广
  • 个人网站制作图片网站推广的基本方法为
  • 胖鼠wordpress百度关键词优化排名技巧
  • 网络推广及网站建设合作协议代码优化
  • php可以做视频网站吗关键词搜索指数
  • 湖南党政建设网站谷歌浏览器下载手机版最新版
  • 网站建设系统源码下载百度到桌面
  • 外贸网站建设专业定制泉州百度推广咨询
  • 起名网站建设seo从入门到精通
  • 室内设计培训网站网站优化公司开始上班了
  • 济南做网站优化的公司网站免费推广平台
  • 做网站背景google chrome官网入口
  • ps怎么做响应式网站布局图网络舆情的网站
  • 网站建设与开发专业泉州关键词搜索排名
  • 百度的网站哪来的口碑营销方案
  • 苏州知名网站建设公司口碑营销推广