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

建立子目录网站做电商网站运营

建立子目录网站,做电商网站运营,如何防止网站攻击,wordpress删除文章数据纠错#xff1a; 在上一部分里我完成了微服务框架的初步实现#xff0c;但是先说一下之前有一个错误#xff0c;就是依赖部分 上次的学习中我在总的父模块下引入了spring-boot-dependencies#xff08;版本控制#xff09;我以为在子模块下就不需要再引用了#xff0c;…纠错 在上一部分里我完成了微服务框架的初步实现但是先说一下之前有一个错误就是依赖部分 上次的学习中我在总的父模块下引入了spring-boot-dependencies版本控制我以为在子模块下就不需要再引用了虽然没有报错但是还是需要在starter模块中再引用一次 修改如下在starter模块下 添加spring-boot-dependencies dependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement 下面我们来开始编写鉴权实现 首先我们要清楚我们需要实现的流程 用户访问时需要通过网关层网关会进行用户鉴权由nacos分配到指定服务 这里为什么auth服务要在其他服务之上呢因为用户需要在auth服务中进行登录获取其专属的token在请求头中带着token才能访问其他的服务。 Nacos 什么是Nacos目前我对nacos的理解是管理与动态分配微服务 后面我说的都是自己的理解可能不是那么准确请大家自行百度哈哈哈。 黑马SpringCloud微服务全通关一套精通springcloud全技术栈Eureka、 Nacos、OpenFeign、网关Gateway、 Spring_哔哩哔哩_bilibili 不是打广告哈哈哈这个讲的简洁不墨迹读文章难受的建议食用  nacos是一个注册中心 我们在创建一个微服务时需要将微服务注册到nacos上。 我们可以把nacos看成一个map表键是微服务的名称值是微服务本身我们可以通过nacos找到想要的微服务。 比如说网关鉴权微服务之间的调用都需要nacos来提供微服务。 nacos搭建 nacos我在自己的服务器上使用的是docker安装但是这次作为演示就在windows本机上安装了 链接https://pan.baidu.com/s/1V4OUO46LZXRym2yzG4DcWQ?pwd1111  提取码1111 下载好后进入bin目录在该目录下打开cmd终端输入 startup.cmd -m standalone 启动成功后我们可以看到一个地址复制粘贴到浏览器账号密码都是nacos就可以成功进入了 nacos配置  这次我们需要新建两个微服务一个是auth微服务一个是gateway微服务 auth服务骨干如下和之前是一样的不知道的可以回去看一下就是改了一个名字 还有网关服务movie-gateway  骨干如下不需要分层 下面我介绍一个工具是阿里的脚手架。地址https://start.aliyun.com/ 这个工具可以帮我们整理spring could和springboot的一些版本冲突 我的spring boot版本是2.4.2 选择对应的版本在这里搜索需要引入的依赖点击下方的浏览代码 我们就可以看到对应的版本号和需要引入的依赖了下面我们开始正式的引入  movie-catalogue服务 总模块 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.4.2/versiontypepom/typescopecompile/scope/dependency/dependenciespropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.4.2/spring-boot.versionspring-cloud-alibaba.version2021.1/spring-cloud-alibaba.versionspring-cloud.version2020.0.6/spring-cloud.version/properties starter模块  dependenciesdependencygroupIdcom.yizhiliulianta/groupIdartifactIdmovie-catalogue-application-controller/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusionartifactIdsnakeyaml/artifactIdgroupIdorg.yaml/groupId/exclusion/exclusions/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildfinalName${project.artifactId}/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.3.0.RELEASE/versionexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/buildmovie-auth服务 总模块 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.4.2/versiontypepom/typescopecompile/scope/dependency/dependenciespropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.4.2/spring-boot.versionspring-cloud-alibaba.version2021.1/spring-cloud-alibaba.versionspring-cloud.version2020.0.6/spring-cloud.version/properties starter模块 dependenciesdependencygroupIdcom.yizhiliulianta/groupIdartifactIdmovie-auth-application-controller/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusionartifactIdsnakeyaml/artifactIdgroupIdorg.yaml/groupId/exclusion/exclusions/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildfinalName${project.artifactId}/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.3.0.RELEASE/versionexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build 其他的模块我就不粘了直接将matalogue引入的依赖粘贴到对应的auth模块依赖下就行了 而movie-gateway的依赖在后面展示 nacos配置文件 movie-auth服务 下面我们在movie-auth服务下的starter模块的配置目录下新建bootstap.xml文件 spring:application:name: movie-authcloud:nacos:discovery:server-addr: 192.168.38.189:5000enabled: true application.name注册到nacos上的服务名 cloud.nacos.discovery.server-addrnacos的地址就是开始启动nacos给你的地址和端口 cloud.nacos.discovery.enabled启用nacos的服务发现功能 movie-catalogue服务 spring:application:name: movie-cataloguecloud:nacos:discovery:server-addr: 192.168.38.189:5000enabled: true movie-gateway服务 spring:application:name: movie-gatewaycloud:nacos:discovery:server-addr: 192.168.38.189:5000enabled: true启动所有服务启动类我就不展示了 打开刚刚的网址发现所有服务成功注册 Sa-Token Sa-Token 是一个轻量级 Java 权限认证框架主要解决登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题 我不再去详细介绍了大家知道这是一款很好用的鉴权框架而且文档非常详细大家可以之间去食用。 官方地址Sa-Token 本次是集成redisredis我就不带大家去安装了下面是安装包无脑下一步就好大家可以去搜一下怎么安装很简单我这里安装过了不去展示了 Redis 链接https://pan.baidu.com/s/1njAjHRm8bUzMOCqo3z6whg?pwd1111  提取码1111 找到刚刚安装的文件夹然后点击redis-cli.exe 还是依赖...哈哈哈。本次我们要和redis集成大家可以照抄我的依赖 movie-gateway服务 总依赖 propertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.4.2/spring-boot.versionspring-cloud-alibaba.version2021.1/spring-cloud-alibaba.versionspring-cloud.version2020.0.6/spring-cloud.version/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusionartifactIdsnakeyaml/artifactIdgroupIdorg.yaml/groupId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-loadbalancer/artifactId/dependency!-- Sa-Token 权限认证Reactor响应式集成, 在线文档https://sa-token.cc --dependencygroupIdcn.dev33/groupIdartifactIdsa-token-reactor-spring-boot-starter/artifactIdversion1.38.0/version/dependency!-- Sa-Token 整合 Redis 使用 jackson 序列化方式 --dependencygroupIdcn.dev33/groupIdartifactIdsa-token-redis-jackson/artifactIdversion1.38.0/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependencydependencygroupIdcom.google.code.gson/groupIdartifactIdgson/artifactIdversion2.8.6/version/dependency/dependencies 配置文件  下面是配置文件的编写在application.yml文件下添加 server:port: 2000spring:cloud:gateway:routes:- id: movie-catalogueuri: lb://movie-cataloguepredicates:- Path/catalogue/**filters:- StripPrefix1- id: movie-authuri: lb://movie-authpredicates:- Path/auth/**filters:- StripPrefix1# redis配置redis:# Redis数据库索引默认为0database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接端口port: 6379# Redis服务器连接密码默认为空password:# 连接超时时间timeout: 10slettuce:pool:# 连接池最大连接数max-active: 200# 连接池最大阻塞等待时间使用负值表示没有限制max-wait: -1ms# 连接池中的最大空闲连接max-idle: 10# 连接池中的最小空闲连接min-idle: 0 sa-token:# token 名称同时也是 cookie 名称token-name: satoken# token 有效期单位秒 默认30天-1 代表永久有效timeout: 2592000# token 最低活跃频率单位秒如果 token 超过此时间没有访问系统就会被冻结默认-1 代表不限制永不冻结active-timeout: -1# 是否允许同一账号多地同时登录 为 true 时允许一起登录, 为 false 时新登录挤掉旧登录is-concurrent: true# 在多人登录同一账号时是否共用一个 token 为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 tokenis-share: true# token 风格默认可取值uuid、simple-uuid、random-32、random-64、random-128、tiktoken-style: random-32# 是否输出操作日志is-log: true movie-auth服务 controller模块依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.4.2/versionexclusionsexclusionartifactIdspring-boot-starter-logging/artifactIdgroupIdorg.springframework.boot/groupId/exclusion/exclusions/dependencydependencygroupIdcom.yizhiliulianta/groupIdartifactIdmovie-auth-domain/artifactIdversion1.0-SNAPSHOT/version/dependency!-- Sa-Token 权限认证 --dependencygroupIdcn.dev33/groupIdartifactIdsa-token-spring-boot-starter/artifactIdversion1.38.0/version/dependency/dependencies common模块依赖 dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/version/dependency!-- 数据映射--dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.4.2.Final/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.4.2.Final/version/dependency!-- 日志--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactIdversion2.4.2/version/dependency!-- json解析工具--dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.24/version/dependency!-- json工具--dependencygroupIdcom.google.code.gson/groupIdartifactIdgson/artifactIdversion2.8.6/versionscopecompile/scope/dependency!-- 集合对象字符串等工具--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.11/version/dependency!-- 断言检查--dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion19.0/version/dependency!-- Sa-Token 整合 Redis 使用 jackson 序列化方式 --dependencygroupIdcn.dev33/groupIdartifactIdsa-token-redis-jackson/artifactIdversion1.37.0/version/dependency!-- 提供Redis连接池 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.9.0/version/dependency/dependencies 下面是配置文件的编写在application.yml文件下添加 server:port: 1001mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplspring:datasource:username: rootdriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/movieweb?useUnicodetrueserverTimezoneAsia/ShanghaiuseSSLtruecharacterEncodingutf-8password: 123456# redis配置redis:# Redis数据库索引默认为0database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接端口port: 6379# Redis服务器连接密码默认为空password:# 连接超时时间timeout: 10slettuce:pool:# 连接池最大连接数max-active: 200# 连接池最大阻塞等待时间使用负值表示没有限制max-wait: -1ms# 连接池中的最大空闲连接max-idle: 10# 连接池中的最小空闲连接min-idle: 0 sa-token:# token 名称同时也是 cookie 名称token-name: satoken# token 有效期单位秒 默认30天-1 代表永久有效timeout: 2592000# token 最低活跃频率单位秒如果 token 超过此时间没有访问系统就会被冻结默认-1 代表不限制永不冻结active-timeout: -1# 是否允许同一账号多地同时登录 为 true 时允许一起登录, 为 false 时新登录挤掉旧登录is-concurrent: true# 在多人登录同一账号时是否共用一个 token 为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 tokenis-share: true# token 风格默认可取值uuid、simple-uuid、random-32、random-64、random-128、tiktoken-style: random-32# 是否输出操作日志is-log: true 现在所有的基础环境和依赖我们都配置完成了 表建立 我们开始鉴权模块的编写了首先我们需要三张表分别是用户权限用户和权限的映射 用户表用户名和密码 权限表权限的名字权限的状态权限的键 映射表用户的id和权限id的映射 大家看着自己建表吧太简单了。 代码实现 下面开始代码的基础编写还是和电影一样的流程dto转bodomain层做逻辑我偷懒了只做了一个新增用户我不去粘代码了我就粘贴一下domain层的主要逻辑了我相信大家是可以写出来的哈哈哈参考上一篇 domain层 package com.yizhiliulianta.auth.domain.service.impl;import cn.dev33.satoken.secure.SaSecureUtil; import cn.dev33.satoken.stp.SaTokenInfo; import com.google.gson.Gson; import com.yizhiliulianta.auth.domain.bo.AuthUserBO; import com.yizhiliulianta.auth.domain.constants.AuthConstant; import com.yizhiliulianta.auth.domain.converter.AuthUserBOConverter; import com.yizhiliulianta.auth.domain.redis.RedisUtil; import com.yizhiliulianta.auth.domain.service.AuthUserDomainService; import com.yizhiliulianta.auth.infra.entity.AuthPermission; import com.yizhiliulianta.auth.infra.entity.AuthUser; import com.yizhiliulianta.auth.infra.entity.AuthUserPermission; import com.yizhiliulianta.auth.infra.service.AuthPermissionService; import com.yizhiliulianta.auth.infra.service.AuthUserPermissionService; import com.yizhiliulianta.auth.infra.service.AuthUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.LinkedList; import java.util.List;Service Slf4j public class AuthUserDomainServiceImpl implements AuthUserDomainService {Resourceprivate AuthUserService authUserService;Resourceprivate AuthPermissionService authPermissionService;Resourceprivate AuthUserPermissionService authUserPermissionService;Resourceprivate RedisUtil redisUtil;private final String salt yizhiliulianta;private final String userPermissionPrefix user.permission;Overridepublic Boolean register(AuthUserBO authUserBO) {AuthUser authUser AuthUserBOConverter.INSTANCE.convertBOToAuth(authUserBO);if (StringUtils.isNotBlank(authUser.getPassword())){authUser.setPassword(SaSecureUtil.md5BySalt(authUser.getPassword(),salt));}//插入用户AuthUser user authUserService.insert(authUser);AuthPermission authPermission new AuthPermission();//获取对应权限信息authPermission.setPermissionKey(AuthConstant.PERMISSION_KEY);AuthPermission permissionResult authPermissionService.queryByCondition(authPermission);//用户与权限做关联Long userId user.getId();Long permissionResultId permissionResult.getId();AuthUserPermission authUserPermission new AuthUserPermission();authUserPermission.setUserId(userId);authUserPermission.setPermissionId(permissionResultId);authUserPermissionService.insert(authUserPermission);//放入redisString buildKey redisUtil.buildKey(userPermissionPrefix, authUser.getUserName());ListAuthPermission authPermissionList new LinkedList();authPermissionList.add(permissionResult);redisUtil.set(buildKey,new Gson().toJson(authPermissionList));return true;}Overridepublic SaTokenInfo doLogin(String validCode) {return null;}Overridepublic AuthUserBO getUserInfo(AuthUserBO authUserBO) {return null;} }这里就是两张表分别进行插入首先查询出插入的用户对象和需要绑定的权限通过映射表的对象来绑定一个映射对象继续插入。权限可能是多个所以我用了一个集合来保存权限也是直接可以将权限丢入的。 movie-gateway代码实现 下面我们开始movie-gateway的编写 首先我们需要编写一个权限认证配置器代码如下 权限认证配置器 package com.yizhiliulianta.gateway.auth;import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.reactor.filter.SaReactorFilter; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 权限认证的配置器*/ Configuration public class SaTokenConfigure {// 注册 Sa-Token全局过滤器 Beanpublic SaReactorFilter getSaReactorFilter() {return new SaReactorFilter()// 拦截地址 .addInclude(/**) /* 拦截全部path */// 鉴权方法每次访问进入 .setAuth(obj - {System.out.println(---- 前端访问path SaHolder.getRequest().getRequestPath());// 登录校验 -- 拦截所有路由并排除/user/doLogin 用于开放登录 SaRouter.match(/**, /auth/user/doLogin, r - StpUtil.checkPermission(movie:select));});} }这个配置器的作用是拦截所有路径进行登录的校验查看该用户是否具有对应权限但是登录不能拦截所以排除了登录路径 权限认证接口实现 package com.yizhiliulianta.gateway.auth;import cn.dev33.satoken.stp.StpInterface; import com.alibaba.nacos.api.utils.StringUtils; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.yizhiliulianta.gateway.entity.AuthPermission; import com.yizhiliulianta.gateway.redis.RedisUtil; import org.springframework.stereotype.Component;import javax.annotation.Resource; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors;/*** 自定义权限验证接口扩展*/ Component public class StpInterfaceImpl implements StpInterface {Resourceprivate RedisUtil redisUtil;private final String userPermissionPrefix user.permission;//获取权限Overridepublic ListString getPermissionList(Object loginId, String loginType) {String authKey redisUtil.buildKey(userPermissionPrefix, loginId.toString());String authValue redisUtil.get(authKey);if (StringUtils.isBlank(authValue)){return Collections.emptyList();}ListAuthPermission permissionList new Gson().fromJson(authValue, new TypeTokenListAuthPermission(){}.getType());return permissionList.stream().map(AuthPermission::getPermissionKey).collect(Collectors.toList());}//获取角色Overridepublic ListString getRoleList(Object loginId, String loginType) {return null;}}重写两个方法因为本次演示一下satoken的使用并没有添加角色role的实现所以我只实现了获取权限的方法。首先拼接一个key去redis中去取得到的值就是我们刚刚放入的权限详细信息我们将其转换成java对象通过steam流获取它的key键就是我们数据库中的permissionkey也就是配置器中的验证数据。 验证操作 下面我们在auth服务中验证一下整体的流程在controller添加两个验证方法代码如下 // 会话登录接口RequestMapping(doLogin)public SaResult doLogin(String name, String pwd) {// 第一步比对前端提交的账号名称、密码if(zhang.equals(name) 123456.equals(pwd)) {// 第二步根据账号id进行登录StpUtil.login(一支榴莲挞);SaTokenInfo tokenInfo StpUtil.getTokenInfo();return SaResult.data(tokenInfo);}return SaResult.error(登录失败);}// 查询登录状态 ---- http://localhost:8081/acc/isLoginRequestMapping(isLogin)public SaResult isLogin() {return SaResult.ok(是否登录 StpUtil.isLogin());} dologin方法中接收前端传来的参数来模拟传入的账号密码如果一致则登录成功利用satoken的login方法进行登录这里的”你好“就是一个模拟在后面我们会和微信登录对接这里放的是真实的用户名然后返回一个对应的token而下面的方法就是验证刚刚的鉴权有没用成功。 下面请出我们的apipost 首先第一步我们要实现用户的注册 添加成功 下面我们开始来测试网关 很完美成功了我们可以看到token和loginid我们将token复制添加到请求头开始用islogin接口进行测试 我们观察到成功了证明我们的网关和auth打通了但是大家可能会有疑问鉴权真的打通了吗  那我们再次操作一下首先是我们不带token 可以看到无权限失败了因为网关拦截住了证明token是没有问题的那么下面就是鉴权 我们在配置器中修改一下权限规则我这里随便修改一下改成abc我们重启服务试一下 没有通过网关证明没有权限与配置的规则不匹配这下我们可以发现网关和satoken成功配置下一次我们要实现的是微信公众号与登录进行打通。 总结 让我们回顾一下这次的任务流程首先是编写了用户与权限的增删改查只完成了增哈哈哈偷懒了然后将三个服务注册到nacos中引入satoken鉴权框架并于redis集成通过缓存来获取用户权限。 用户登录实现的过程注册----》登录-----》获取token----》网关拦截通过token在redis中获取权限信息来判断是否符合规则 附录  代码不是很全因为类真的很多如果大家想要代码的话可以私信我下次完成微信打通我将代码放到gitee上方便大家拉取
http://www.hkea.cn/news/14318025/

相关文章:

  • 建一个推广网站价格石狮建设局网站
  • 变性人做欲网站带管理后台的网站
  • 短网站生成公司软文代写
  • 会泽住房和城乡建设局网站珠海互联网公司
  • 徐州智能建站怎么做宁波seo深度优化平台有哪些
  • 园林网站免费模板网络行为管理系统
  • 网站开发 阿里北京市住房和城乡建设厅官方网站
  • 深圳网站建设qwyx100wordpress year
  • 如何建设好营销网站酒店如何做网络推广
  • 长春市做网站推广河南郑州app建设网站
  • 如何查询网站的访问量查看网站的 cms
  • 上海网站建设推荐秒搜科技购物网站域名大小
  • 郑州网站建设学习开源无代码开发平台
  • 最好的网站建设团队网站建设 指标
  • 大连哪里有手机自适应网站建设班级建设怎样建立班级网站
  • 手机网站微信链接怎么做的兰州生活网
  • 个人建站网站太原市微网站建设
  • 上海建设银行官网网站6网站开发最新书籍
  • 如何查网站空间百度指数数据分析平台入口
  • 购物网站用那个软件做游戏策划
  • 大连网站制做公司如何利用网站模板做网站
  • 网站开发前端和后端哪个费时间英文网站常用字体
  • 西充县规划建设局网站网站建设单词
  • 给公司怎么做官方网站聊城网站建设设计开发公司
  • 网站案例分析湖南wordpress重定向循环
  • 网站建设的财务分析wordpress新建页面模板
  • 扬州市开发区建设局网站首页如何建立一个自己的网站啊
  • 中国和城乡建设部网站首页酒店网站案例
  • 中国电力建设股份部官方网站免费手机建站平台
  • 小网站链接怎么找ui设计师工作流程