pig4cloud框架系列三:密码模式换取token(登录认证)

发布时间 2023-10-06 13:40:44作者: MrQuan

1,通过apiFox或者postMan模拟调用接口,使用密码模式获取token

 2,首先代码会先来到ProviderManager类的authenticate方法,也就是登录认证的入口

 3,先到AuthenticationProvider接口,然后到AbstractUserDetailsAuthenticationProvider实现类的authenticate方法

 4,authenticate方法中会调用retrieveUser方法,接着会调用定义在WebSecurityConfiguration中PigDaoAuthenticationProvider类的retrieveUser方法

 5,这里会查找所有PigUserDetailsService的实现类,然后通过filter,拿到用于密码登录验证所需要的PigUserDetailsServiceImpl类

 5,接着调用 PigUserDetailsServiceImpl中的loadUserByUsername方法,方法中通过remoteUserService feign接口查询用户密码

 6,查询用户信息结束之后,再调用PigDaoAuthenticationProvider类的additionalAuthenticationChecks方法,校验密码是否一致,需要校验加密后的密码是否一致

 7,后端框架默认使用的加密方式是 bcrypt,可以修改,修改地方在PigUserDetailsService类的getUserDetails方法。