AuthConfig.java 3.0 KB
Newer Older
智布道's avatar
智布道 已提交
1 2
package me.zhyd.oauth.config;

智布道's avatar
智布道 已提交
3
import com.xkcoding.http.config.HttpConfig;
4
import lombok.*;
5
import me.zhyd.oauth.model.AuthCallback;
6

智布道's avatar
智布道 已提交
7
/**
智布道's avatar
智布道 已提交
8 9
 * JustAuth配置类
 *
智布道's avatar
智布道 已提交
10 11 12
 * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
 * @since 1.8
 */
13
@Getter
14
@Setter
15
@Builder
16 17
@NoArgsConstructor
@AllArgsConstructor
智布道's avatar
智布道 已提交
18
public class AuthConfig {
智布道's avatar
智布道 已提交
19 20

    /**
智布道's avatar
智布道 已提交
21
     * 客户端id:对应各平台的appKey
智布道's avatar
智布道 已提交
22
     */
23
    private String clientId;
智布道's avatar
智布道 已提交
24 25

    /**
智布道's avatar
智布道 已提交
26
     * 客户端Secret:对应各平台的appSecret
智布道's avatar
智布道 已提交
27
     */
28
    private String clientSecret;
智布道's avatar
智布道 已提交
29

智布道's avatar
智布道 已提交
30
    /**
智布道's avatar
智布道 已提交
31
     * 登录成功后的回调地址
智布道's avatar
智布道 已提交
32
     */
33
    private String redirectUri;
34 35 36

    /**
     * 支付宝公钥:当选择支付宝登录时,该值可用
智布道's avatar
智布道 已提交
37
     * 对应“RSA2(SHA256)密钥”中的“支付宝公钥”
38 39
     */
    private String alipayPublicKey;
40 41 42 43 44

    /**
     * 是否需要申请unionid,目前只针对qq登录
     * 注:qq授权登录时,获取unionid需要单独发送邮件申请权限。如果个人开发者账号中申请了该权限,可以将该值置为true,在获取openId时就会同步获取unionId
     * 参考链接:http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D
45 46
     * <p>
     * 1.7.1版本新增参数
47 48
     */
    private boolean unionId;
49

H
Hongwei Peng 已提交
50 51 52
    /**
     * Stack Overflow Key
     * <p>
53 54
     *
     * @since 1.9.0
H
Hongwei Peng 已提交
55 56
     */
    private String stackOverflowKey;
57 58 59

    /**
     * 企业微信,授权方的网页应用ID
60 61
     *
     * @since 1.10.0
62 63
     */
    private String agentId;
智布道's avatar
智布道 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

    /**
     * 使用 Coding 登录时,需要传该值。
     *
     * 团队域名前缀,比如以“ https://justauth.coding.net/ ”为例,{@code codingGroupName} = justauth
     *
     * @since 1.15.5
     */
    private String codingGroupName;

    /**
     * 针对国外服务可以单独设置代理
     * HttpConfig config = new HttpConfig();
     * config.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 10080)));
     * config.setTimeout(15000);
     *
     * @since 1.15.5
     */
    private HttpConfig httpConfig;
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

    /**
     * 忽略校验 {@code state} 参数,默认不开启。当 {@code ignoreCheckState} 为 {@code true} 时,
     * {@link me.zhyd.oauth.request.AuthDefaultRequest#login(AuthCallback)} 将不会校验 {@code state} 的合法性。
     *
     * 使用场景:当且仅当使用自实现 {@code state} 校验逻辑时开启
     *
     * 以下场景使用方案仅作参考:
     * 1. 授权、登录为同端,并且全部使用 JustAuth 实现时,该值建议设为 {@code false};
     * 2. 授权和登录为不同端实现时,比如前端页面拼装 {@code authorizeUrl},并且前端自行对{@code state}进行校验,
     * 后端只负责使用{@code code}获取用户信息时,该值建议设为 {@code true};
     *
     * <strong>如非特殊需要,不建议开启这个配置</strong>
     *
     * 该方案主要为了解决以下类似场景的问题:
     * @see <a href="https://github.com/justauth/JustAuth/issues/83">https://github.com/justauth/JustAuth/issues/83</a>
     */
    private boolean ignoreCheckState;
智布道's avatar
智布道 已提交
101
}