背景:
做一个简单系统时,关于登录、权限等的验证是必不可少的;但是结合整个系统的技术架构流程图来整体梳理,更是重中之重的一个环节,只有充分理清这一整个流程,才能无所畏惧的开发
目标:
充分掌握一个请求如何登录 + 身份验证 + 组件架构的整合
内容知识点:
登录、Nginx、网关、鉴权、后端工程
请求整体架构流程图
说明:实现方式多种多样,本文内容仅供参考
补充流程说明:
当我们在做用户身份验证登录时,是有多种的验证方式,比如通过微信登扫码认证,或者集成单点登录,或者通过账号密码,手机验证码等形式。
区别之处在于:获取用户的信息来源于哪
如果是非账号密码的形式,那么需要经过一层中转带着用户的信息,到系统平台来进行校验,鉴权
流程步骤说明:
①当我们在使用ip(域名)http://ip:8080/ban-sheng/工程名/接口地址 进行访问时,会先经过Nginx的这一层负载。在nginx.conf的配置中,配置了监听的端口,路由代理的规则
location /ban-sheng {
rewrite /ban-sheng /(.*) /$1 break;
proxy_pass http://localhost:8000;
}
Nginx假设这里监听的到的是8080端口,匹配到了路径/ban-sheng 之后就会代理到我们的网关这一层
②到了网关这一层后,可能会进行一个简单验证token是否有携带过来,或者是否过期的验证
如果验证通过后那么就直接通过网关的配置代理到对应的工程中去。验证失败的话,就直接返回到登录界面,重新登录获取用户信息
当然这里的每个服务都得注册上,如下:这是网关的转发规则的配置,可以自行配置多个工程地址的路由路径规则
Nacos的网关路由路径配置
③到了Auth工程来进行鉴权,会解析token里的信息,获取用户具体的人员、组织机构、角色权限等信息。
可以这一层加一个白名单的过滤。比如这个角色权限是否能支持调用这个接口,来做一层安全防护
④经过以上的层层通过之后,最终请求就到了业务工程上了,去进行业务上的功能操作。