课程名称:SpringBoot+Vue3 项目实战,打造企业级在线办公系统
课程章节:第三章
主讲老师:神思者
课程学习:
1.JWT+OpenId
课程收获:
客户端调用 /login 接口 此时进入 控制层 controller条用 service,此时 通过 feign 调用
hxdr-dr 里面得controller 进行openid得解析
@FeignClient(value = "hxds-dr")public interface DrServiceApi { …… @PostMapping("/driver/login") public R login(LoginForm form); }
这也是老师之前在文章里面说的 原创调用微服务
在Alibaba SpringCloud架构中,服务之间调用可以采用Feign技术。Feign是Netflix开发的声明式、模板化的HTTP客户端, 它可以帮助我们快捷优雅地调用HTTP API接口。
这里就要提到 微服务鉴权
课程中使用得是 bff 鉴权
BFF全称是Backends For Frontends,直译过来就是“服务于前端的后端”。 简而言之,BFF就是设计后端微服务API接口时,考虑到不同设备的需求,为不同的设备提供不同的API接口。
客户端不是直接访问服务器的公共接口,而是调用BFF层提供的接口,BFF层再调用基础的服务,不同的客户端拥有不同的BFF层,它们定制客户端需要的API接口。
有了BFF层之后,客户端只需要发起一次HTTP请求,BFF层就能调用不同的服务,然后把汇总后的数据返回给客户端,这样就减少了外网的HTTP请求,响应速度也就更快。
在BFF项目中设置了鉴权模块后,我们只需要在BFF项目的Web方法上面设置权限验证的注解即可,而且也不用考虑不同客户端的权限叠加。毕竟一种BFF项目,只服务于一种客户端。在司机BFF项目的代码上,我们只需要考虑司机端小程序的权限验证,代驾客户根本不可能访问到司机BFF层。
BFF层也只是个普通的SpringBoot项目可以,也是通过Feign远程调用其他服务的。在BFF层的Service代码中,该用分布式事务的地方也要加上相关的注解。
前端页面通过使用
uni.login({ provider: 'weixin', success: function(resp) { let code = resp.code; let data = { code: code }; } })
使用uni.login获取 code
并将code传入 login 接口
此时 登录功能就完成了