mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 10:37:41 +08:00 
			
		
		
		
	code review 用户社交登陆的逻辑
增加测试页面的 README.md
This commit is contained in:
		| @ -15,16 +15,23 @@ import java.lang.reflect.Method; | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 第三方授权拓展 request 工厂类 |  * 第三方授权拓展 request 工厂类 | ||||||
|  * (为使得拓展配置和默认配置齐平,自定义本工厂类) |  * 为使得拓展配置 {@link AuthConfig} 和默认配置齐平,所以自定义本工厂类 | ||||||
|  * |  * | ||||||
|  * @author timfruit |  * @author timfruit | ||||||
|  * @date 2021-10-31 |  * @date 2021-10-31 | ||||||
|  */ |  */ | ||||||
|  | // TODO @timfruit:单测 | ||||||
| public class YudaoAuthRequestFactory extends AuthRequestFactory { | public class YudaoAuthRequestFactory extends AuthRequestFactory { | ||||||
|  |  | ||||||
|     protected JustAuthProperties properties; |     protected JustAuthProperties properties; | ||||||
|     protected AuthStateCache authStateCache; |     protected AuthStateCache authStateCache; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 由于父类 configureHttpConfig 方法是 private 修饰,所以获取后,进行反射调用 | ||||||
|  |      */ | ||||||
|  |     private final Method configureHttpConfigMethod = ReflectUtil.getMethod(AuthRequestFactory.class, | ||||||
|  |             "configureHttpConfig", String.class, AuthConfig.class, JustAuthProperties.JustAuthHttpConfig.class); | ||||||
|  |  | ||||||
|     public YudaoAuthRequestFactory(JustAuthProperties properties, AuthStateCache authStateCache) { |     public YudaoAuthRequestFactory(JustAuthProperties properties, AuthStateCache authStateCache) { | ||||||
|         super(properties, authStateCache); |         super(properties, authStateCache); | ||||||
|         this.properties = properties; |         this.properties = properties; | ||||||
| @ -38,20 +45,17 @@ public class YudaoAuthRequestFactory extends AuthRequestFactory { | |||||||
|      * @return {@link AuthRequest} |      * @return {@link AuthRequest} | ||||||
|      */ |      */ | ||||||
|     public AuthRequest get(String source) { |     public AuthRequest get(String source) { | ||||||
|         //先尝试获取自定义扩展的 |         // 先尝试获取自定义扩展的 | ||||||
|         AuthRequest authRequest = getExtendRequest(source); |         AuthRequest authRequest = getExtendRequest(source); | ||||||
|  |         // 找不到,使用默认拓展 | ||||||
|         if (authRequest == null) { |         if (authRequest == null) { | ||||||
|             authRequest = super.get(source); |             authRequest = super.get(source); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return authRequest; |         return authRequest; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     protected AuthRequest getExtendRequest(String source) { |     protected AuthRequest getExtendRequest(String source) { | ||||||
|         AuthExtendSource authExtendSource; |         AuthExtendSource authExtendSource; | ||||||
|  |  | ||||||
|         try { |         try { | ||||||
|             authExtendSource = EnumUtil.fromString(AuthExtendSource.class, source.toUpperCase()); |             authExtendSource = EnumUtil.fromString(AuthExtendSource.class, source.toUpperCase()); | ||||||
|         } catch (IllegalArgumentException e) { |         } catch (IllegalArgumentException e) { | ||||||
| @ -59,19 +63,18 @@ public class YudaoAuthRequestFactory extends AuthRequestFactory { | |||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // 拓展配置和默认配置齐平,properties放在一起 |         // 拓展配置和默认配置齐平,properties 放在一起 | ||||||
|         AuthConfig config = properties.getType().get(authExtendSource.name()); |         AuthConfig config = properties.getType().get(authExtendSource.name()); | ||||||
|         // 找不到对应关系,直接返回空 |         // 找不到对应关系,直接返回空 | ||||||
|         if (config == null) { |         if (config == null) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // 配置 http config |         // 配置 http config | ||||||
|         Method method = ReflectUtil.getMethod(AuthRequestFactory.class, "configureHttpConfig", |         ReflectUtil.invoke(this, configureHttpConfigMethod, | ||||||
|                 String.class, AuthConfig.class, JustAuthProperties.JustAuthHttpConfig.class); |  | ||||||
|         ReflectUtil.invoke(this, method, |  | ||||||
|                 authExtendSource.name(), config, properties.getHttpConfig()); |                 authExtendSource.name(), config, properties.getHttpConfig()); | ||||||
|  |  | ||||||
|  |         // 获得拓展的 Request | ||||||
|  |         // noinspection SwitchStatementWithTooFewBranches | ||||||
|         switch (authExtendSource) { |         switch (authExtendSource) { | ||||||
|             case WECHAT_MINI_PROGRAM: |             case WECHAT_MINI_PROGRAM: | ||||||
|                 return new AuthWeChatMiniProgramRequest(config, authStateCache); |                 return new AuthWeChatMiniProgramRequest(config, authStateCache); | ||||||
|  | |||||||
| @ -3,16 +3,19 @@ package cn.iocoder.yudao.framework.social.core.enums; | |||||||
| import me.zhyd.oauth.config.AuthSource; | import me.zhyd.oauth.config.AuthSource; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 拓展JustAuth各api需要的url, 用枚举类分平台类型管理<br> |  * 拓展JustAuth各api需要的url, 用枚举类分平台类型管理 | ||||||
|  * |  * | ||||||
|  * 默认配置{@link me.zhyd.oauth.config.AuthDefaultSource} |  * 默认配置 {@link me.zhyd.oauth.config.AuthDefaultSource} | ||||||
|  |  * | ||||||
|  |  * @author timfruit | ||||||
|  */ |  */ | ||||||
| public enum AuthExtendSource implements AuthSource { | public enum AuthExtendSource implements AuthSource { | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 微信小程序授权登录 |      * 微信小程序授权登录 | ||||||
|      */ |      */ | ||||||
|     WECHAT_MINI_PROGRAM{ |     WECHAT_MINI_PROGRAM { | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
|         public String authorize() { |         public String authorize() { | ||||||
|             // https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html |             // https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								yudao-user-server/src/main/resources/static/READMD.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								yudao-user-server/src/main/resources/static/READMD.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | ## 微信公众号 | ||||||
|  |  | ||||||
|  | 参考文章:https://www.yuque.com/docs/share/0e2966dd-89f8-4b69-980d-b876168725df | ||||||
|  |  | ||||||
|  | ① 访问 social-login.html 选择【微信公众号】 | ||||||
|  |  | ||||||
|  | ② 微信公众号授权完成后,跳转回 social-login2.html,输入手机号 + 密码,进行绑定 | ||||||
|  |  | ||||||
|  | ## 微信小程序 | ||||||
|  |  | ||||||
|  | 参考文章:https://www.yuque.com/docs/share/88e3d30a-6830-45fc-8c25-dae485aef3aa | ||||||
|  |  | ||||||
|  | ① 暂时使用 mini-program-test 项目 | ||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV