• cly_0's avatar
    获取三方实例 部分 进行重构,使之可以进行更简单的获取对应的实例。 · 9971793f
    cly_0 提交于
    如之前获取对应的实例:
            switch (source.toLowerCase()) {
                case "dingtalk":
                    authRequest = new AuthDingTalkRequest(AuthConfig.builder()
                            .clientId("")
                            .clientSecret("")
                            .redirectUri("http://localhost:8443/oauth/callback/dingtalk")
                            .build());
                    break;
                case "baidu":
                    authRequest = new AuthBaiduRequest(AuthConfig.builder()
                            .clientId("")
                            .clientSecret("")
                            .redirectUri("http://localhost:8443/oauth/callback/baidu")
                            .scopes(Arrays.asList(
                                    AuthBaiduScope.BASIC.getScope(),
                                    AuthBaiduScope.SUPER_MSG.getScope(),
                                    AuthBaiduScope.NETDISK.getScope()
                            ))
                            .build());
                    break;
                   }
    上面需要调用端自己去根据source编码进行 new 对应的子类,这是不合理的。调用者应该只需要关心source码和对应的配置。
    现在重构后,调用端只需要传入对应的source 和自定义的配置 通过统一的入口就可以拿到正确的实例。不需要调用端做各种判断,所有逻辑判断在服务端这边做好了处理。
    调用端代码如下:
            AuthDefaultSource defaultSource = AuthDefaultSource.getAuthSource("wechat_mp");
            AuthRequest request = defaultSource.getAuthRequestInstance(AuthConfig.builder()
                .clientId("a")
                .clientSecret("a")
                .redirectUri("https://www.justauth.cn")
                .build());
    9971793f
AuthExtendSource.java 2.5 KB