diff --git a/v.md b/v.md index 2962c92..a155618 100644 --- a/v.md +++ b/v.md @@ -9,9 +9,7 @@ http://****/user/ ```json { // 请求体 - "code": 200, "Cookie": null, - "msg": null, "imagecode": null, "data": { "name": "李强", @@ -23,7 +21,17 @@ http://****/user/ { // 响应体 "code": 200, - "msg": "access" + "msg": "access", + "token": null, + "data": null +} + +// ---------------------------------- +// 上面的是登录的响应体,下面是各个操作的统一响应体。 + +{// 各个操作的响应体 + "code": 200, + "msg": "成功!" } {// 添加(修改、删除)部门 @@ -240,3 +248,72 @@ create table brand( # 创建资产信息表 ``` + +--- + +## 实现登录 + +首先在后端定义好一个前端要用的URL地址。 + +```java +@PostMapping("login") +@ResponseBody +public ResponseResult login(User user){ + User u = userService.login(user.getName(),user.getPassword()); + if (u!=null) { + return ResponseResult.ok(u,"登录成功!"); + }else { + return ResponseResult.failed(400,"登录失败!"); + } +} +``` + +接着在前端通axios来访问这个地址。 + +```vue +method: { + login(){ + axios.post('http://****/login', {header(){ + "**": "***" + }}).then(resp=>{ + ..... + }) + } +} +``` + +这样就对其访问,在这里的代码中,想要前端获取到这样的请求体的话就要在Java代码中,修改一下返回值。 + +```json +{ // 请求体 + "code": 200, + "Cookie": null, + "msg": null, + "imagecode": null, + "data": { + "name": "李强", + "iphone": "1231231231", + "password": "ssdfsf333" + }, + "token": null +} +``` + +修改结果: + +```java +@PostMapping("login") +@ResponseBody +public ResponseResult login(User user){ + User u = userService.login(user.getName(),user.getPassword()); + // 定义一个token的变量来接收生成token对象的结果。 + String token = new GenerateToken(); + // 将这个token 放进 VO类中。做成一个专门给前端的data对象结果。 + u.setToken = token; + if (u!=null) { + return ResponseResult.ok(u,"登录成功!"); + }else { + return ResponseResult.failed(400,"登录失败!"); + } +} +``` diff --git a/资产系统开发笔记.md b/资产系统开发笔记.md index 457dc10..e05d32f 100644 --- a/资产系统开发笔记.md +++ b/资产系统开发笔记.md @@ -1110,7 +1110,7 @@ Number类型的 后台首页界面✅ -​token 密钥:NBNtndVbuixdd19h8L1YlYVW96GjRltY6uRGyPvNnjQ29rMOKm +token 密钥:NBNtndVbuixdd19h8L1YlYVW96GjRltY6uRGyPvNnjQ29rMOKm 消息队列模块 diff --git a/项目开发.md b/项目开发.md index fb96a38..d5b6e7c 100644 --- a/项目开发.md +++ b/项目开发.md @@ -2,3 +2,71 @@ --- +项目架构: + +demo-api:为后端与后端交互而提供的接口服务。【为服务层和通用处理层提供的接口。】 + +demo-dao:后端与数据库直接交互的地方。【数据持久层】 + +demo-manager:代码管理层。【通用处理层:处理三方平台和三方平台的接口】 + +demo-service:复杂业务层。 + +demo-web:为前端提供接口。【这里从某种角度,就是图中的开放接口】 + +start:启动和测试使用。 + +项目主提结构:【根据阿里巴巴项目目录结构所分析的图形化】 + +![项目目录结构图形化](https://images.gitee.com/uploads/images/2022/0119/145654_69e1b56a_8844212.png) + +--- + +## 用户角色设计 + +采用分层权限模型,来对公司各职务权限和人员进行管理。 + +如下所示: + +![分层设计表](https://img-blog.csdnimg.cn/92f89e1506b04bbc9a30f234bc59b52b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYWR2ZW50dXJlLkxp,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center) + +user 对应 用户 + +role 对应 角色 + +permission 对应 权限 + +通过两个关联表来实现分层权限。【分别为:user_role、role_permission】 + +对于权限,我们将其分为操作权限,和访问权限。分别对应为:menu、operation。 +> 对于访问权限和操作权限的表跟权限表,我采用两个表分别进行关联起来。【menu_permission、operation_permission】 + +这样就可以更详细的描述公司人员之间的关系了。 + +--- + +## 前后分离思路 + +> 这里的需要注意的是,token的作用是给系统系别你这账号的权限的。cookie则是自己设置系统是否开启cookie的功能的。如果开启,浏览器就会生成一个cookie给用户,让用户下次登录就不用再次输入账号密码之类的操作。 + +在做前后分离时,首先要考虑自己的所提供给前端,应该是按照什么格式去反馈。 + +即请求体和响应体的格式,不同开发人员所定义的请求结构是不同的。所以要找到适合自己习惯的。 + +下面是自己所觉得合理的请求、响应体: + +```json +{// 登录响应 + "code": 200, + "msg": "", + "data": null, + "token": null +} + +{//请求体 + "token": null, + "data": { + .... + } +} +```