前端登录的时候,会发出
localhost:1024/dev-api/auth/login
的请求,该请求经过vue框架的proxy后,其实是去访问localhost:8080,这个要看一下ruoyi-ui中的vue.config.js中的proxy模块是咋写的。
然后再看后台代码ruoyi-gateway的bootstrap.yml文件中的server.port=8080,说明这个前端请求是先到了gateway模块的。
然后在gateway模块的配置中发现/auth/**的请求应该发送到lb://ruoyi-auth模块,于是该请求被转发到了ruoyi-auth模块。
去ruoyi-auth模块,果然看到了有处理/login的方法。
接着我们需要重点看一下这个login方法的处理流程。
下面ruoyi-auth模块中TokenController的login方法的源代码:
可以看到login方法调用了remoteUserService对象的getUserInfo方法。那么remoteUserService对象是怎么来的呢?
我们看一下RemoteUserService的源代码,发现RemoteUserService有一个@FeignClient的注释,说明其实在调用remoteUserService的方法时,会被feign自动转发到ruoyi-system模块中去,比如刚才login方法中调用的getUserInfo方法,其实是去调用了ruoyi-system的/user/info/{username}方法了
所以一个简单的/login方法,是先第一步请求了gateway模块,然后gateway模块根据nacos中的配置知道要把这个/auth/**开头的请求转发给auth模块,auth模块交给了login方法去处理,然后login方法其实是调用了ruoyi-system中的方法去实际处理的。
标签:流程,ruoyi,auth,模块,login,方法,gateway,cloud From: https://www.cnblogs.com/lukairui/p/16897258.html