package me.zhyd.oauth.config; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.exception.AuthException; /** * JustAuth内置的各api需要的url, 用枚举类分平台类型管理 * * @author yadong.zhang (yadong.zhang0415(a)gmail.com) * @since 1.0 */ public enum AuthDefaultSource implements AuthSource { /** * Github */ GITHUB { @Override public String authorize() { return "https://github.com/login/oauth/authorize"; } @Override public String accessToken() { return "https://github.com/login/oauth/access_token"; } @Override public String userInfo() { return "https://api.github.com/user"; } }, /** * 新浪微博 */ WEIBO { @Override public String authorize() { return "https://api.weibo.com/oauth2/authorize"; } @Override public String accessToken() { return "https://api.weibo.com/oauth2/access_token"; } @Override public String userInfo() { return "https://api.weibo.com/2/users/show.json"; } @Override public String revoke() { return "https://api.weibo.com/oauth2/revokeoauth2"; } }, /** * gitee */ GITEE { @Override public String authorize() { return "https://gitee.com/oauth/authorize"; } @Override public String accessToken() { return "https://gitee.com/oauth/token"; } @Override public String userInfo() { return "https://gitee.com/api/v5/user"; } }, /** * 钉钉 */ DINGTALK { @Override public String authorize() { return "https://oapi.dingtalk.com/connect/qrconnect"; } @Override public String accessToken() { throw new AuthException(AuthResponseStatus.UNSUPPORTED); } @Override public String userInfo() { return "https://oapi.dingtalk.com/sns/getuserinfo_bycode"; } }, /** * 百度 */ BAIDU { @Override public String authorize() { return "https://openapi.baidu.com/oauth/2.0/authorize"; } @Override public String accessToken() { return "https://openapi.baidu.com/oauth/2.0/token"; } @Override public String userInfo() { return "https://openapi.baidu.com/rest/2.0/passport/users/getInfo"; } @Override public String revoke() { return "https://openapi.baidu.com/rest/2.0/passport/auth/revokeAuthorization"; } @Override public String refresh() { return "https://openapi.baidu.com/oauth/2.0/token"; } }, /** * csdn */ CSDN { @Override public String authorize() { return "https://api.csdn.net/oauth2/authorize"; } @Override public String accessToken() { return "https://api.csdn.net/oauth2/access_token"; } @Override public String userInfo() { return "https://api.csdn.net/user/getinfo"; } }, /** * Coding, * * 参考 https://help.coding.net/docs/project/open/oauth.html#%E7%94%A8%E6%88%B7%E6%8E%88%E6%9D%83 中的说明, * 新版的 coding API 地址需要传入用户团队名,这儿使用动态参数,方便在 request 中使用 */ CODING { @Override public String authorize() { return "https://%s.coding.net/oauth_authorize.html"; } @Override public String accessToken() { return "https://%s.coding.net/api/oauth/access_token"; } @Override public String userInfo() { return "https://%s.coding.net/api/account/current_user"; } }, /** * oschina 开源中国 */ OSCHINA { @Override public String authorize() { return "https://www.oschina.net/action/oauth2/authorize"; } @Override public String accessToken() { return "https://www.oschina.net/action/openapi/token"; } @Override public String userInfo() { return "https://www.oschina.net/action/openapi/user"; } }, /** * 支付宝 */ ALIPAY { @Override public String authorize() { return "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm"; } @Override public String accessToken() { return "https://openapi.alipay.com/gateway.do"; } @Override public String userInfo() { return "https://openapi.alipay.com/gateway.do"; } }, /** * QQ */ QQ { @Override public String authorize() { return "https://graph.qq.com/oauth2.0/authorize"; } @Override public String accessToken() { return "https://graph.qq.com/oauth2.0/token"; } @Override public String userInfo() { return "https://graph.qq.com/user/get_user_info"; } @Override public String refresh() { return "https://graph.qq.com/oauth2.0/token"; } }, /** * 微信开放平台 */ WECHAT_OPEN { @Override public String authorize() { return "https://open.weixin.qq.com/connect/qrconnect"; } @Override public String accessToken() { return "https://api.weixin.qq.com/sns/oauth2/access_token"; } @Override public String userInfo() { return "https://api.weixin.qq.com/sns/userinfo"; } @Override public String refresh() { return "https://api.weixin.qq.com/sns/oauth2/refresh_token"; } }, /** * 微信公众平台 */ WECHAT_MP { @Override public String authorize() { return "https://open.weixin.qq.com/connect/oauth2/authorize"; } @Override public String accessToken() { return "https://api.weixin.qq.com/sns/oauth2/access_token"; } @Override public String userInfo() { return "https://api.weixin.qq.com/sns/userinfo"; } @Override public String refresh() { return "https://api.weixin.qq.com/sns/oauth2/refresh_token"; } }, /** * 淘宝 */ TAOBAO { @Override public String authorize() { return "https://oauth.taobao.com/authorize"; } @Override public String accessToken() { return "https://oauth.taobao.com/token"; } @Override public String userInfo() { throw new AuthException(AuthResponseStatus.UNSUPPORTED); } }, /** * Google */ GOOGLE { @Override public String authorize() { return "https://accounts.google.com/o/oauth2/v2/auth"; } @Override public String accessToken() { return "https://www.googleapis.com/oauth2/v4/token"; } @Override public String userInfo() { return "https://www.googleapis.com/oauth2/v3/userinfo"; } }, /** * Facebook */ FACEBOOK { @Override public String authorize() { return "https://www.facebook.com/v3.3/dialog/oauth"; } @Override public String accessToken() { return "https://graph.facebook.com/v3.3/oauth/access_token"; } @Override public String userInfo() { return "https://graph.facebook.com/v3.3/me"; } }, /** * 抖音 */ DOUYIN { @Override public String authorize() { return "https://open.douyin.com/platform/oauth/connect"; } @Override public String accessToken() { return "https://open.douyin.com/oauth/access_token/"; } @Override public String userInfo() { return "https://open.douyin.com/oauth/userinfo/"; } @Override public String refresh() { return "https://open.douyin.com/oauth/refresh_token/"; } }, /** * 领英 */ LINKEDIN { @Override public String authorize() { return "https://www.linkedin.com/oauth/v2/authorization"; } @Override public String accessToken() { return "https://www.linkedin.com/oauth/v2/accessToken"; } @Override public String userInfo() { return "https://api.linkedin.com/v2/me"; } @Override public String refresh() { return "https://www.linkedin.com/oauth/v2/accessToken"; } }, /** * 微软 */ MICROSOFT { @Override public String authorize() { return "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; } @Override public String accessToken() { return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; } @Override public String userInfo() { return "https://graph.microsoft.com/v1.0/me"; } @Override public String refresh() { return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; } }, /** * 小米 */ MI { @Override public String authorize() { return "https://account.xiaomi.com/oauth2/authorize"; } @Override public String accessToken() { return "https://account.xiaomi.com/oauth2/token"; } @Override public String userInfo() { return "https://open.account.xiaomi.com/user/profile"; } @Override public String refresh() { return "https://account.xiaomi.com/oauth2/token"; } }, /** * 今日头条 */ TOUTIAO { @Override public String authorize() { return "https://open.snssdk.com/auth/authorize"; } @Override public String accessToken() { return "https://open.snssdk.com/auth/token"; } @Override public String userInfo() { return "https://open.snssdk.com/data/user_profile"; } }, /** * Teambition */ TEAMBITION { @Override public String authorize() { return "https://account.teambition.com/oauth2/authorize"; } @Override public String accessToken() { return "https://account.teambition.com/oauth2/access_token"; } @Override public String refresh() { return "https://account.teambition.com/oauth2/refresh_token"; } @Override public String userInfo() { return "https://api.teambition.com/users/me"; } }, /** * 人人网 */ RENREN { @Override public String authorize() { return "https://graph.renren.com/oauth/authorize"; } @Override public String accessToken() { return "https://graph.renren.com/oauth/token"; } @Override public String refresh() { return "https://graph.renren.com/oauth/token"; } @Override public String userInfo() { return "https://api.renren.com/v2/user/get"; } }, /** * Pinterest */ PINTEREST { @Override public String authorize() { return "https://api.pinterest.com/oauth"; } @Override public String accessToken() { return "https://api.pinterest.com/v1/oauth/token"; } @Override public String userInfo() { return "https://api.pinterest.com/v1/me"; } }, /** * Stack Overflow */ STACK_OVERFLOW { @Override public String authorize() { return "https://stackoverflow.com/oauth"; } @Override public String accessToken() { return "https://stackoverflow.com/oauth/access_token/json"; } @Override public String userInfo() { return "https://api.stackexchange.com/2.2/me"; } }, /** * 华为 * * @since 1.10.0 */ HUAWEI { @Override public String authorize() { return "https://oauth-login.cloud.huawei.com/oauth2/v2/authorize"; } @Override public String accessToken() { return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; } @Override public String userInfo() { return "https://api.vmall.com/rest.php"; } @Override public String refresh() { return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; } }, /** * 企业微信 * * @since 1.10.0 */ WECHAT_ENTERPRISE { @Override public String authorize() { return "https://open.work.weixin.qq.com/wwopen/sso/qrConnect"; } @Override public String accessToken() { return "https://qyapi.weixin.qq.com/cgi-bin/gettoken"; } @Override public String userInfo() { return "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo"; } }, /** * 酷家乐 * * @since 1.11.0 */ KUJIALE { @Override public String authorize() { return "https://oauth.kujiale.com/oauth2/show"; } @Override public String accessToken() { return "https://oauth.kujiale.com/oauth2/auth/token"; } @Override public String userInfo() { return "https://oauth.kujiale.com/oauth2/openapi/user"; } @Override public String refresh() { return "https://oauth.kujiale.com/oauth2/auth/token/refresh"; } }, /** * Gitlab * * @since 1.11.0 */ GITLAB { @Override public String authorize() { return "https://gitlab.com/oauth/authorize"; } @Override public String accessToken() { return "https://gitlab.com/oauth/token"; } @Override public String userInfo() { return "https://gitlab.com/api/v4/user"; } }, /** * 美团 * * @since 1.12.0 */ MEITUAN { @Override public String authorize() { return "https://openapi.waimai.meituan.com/oauth/authorize"; } @Override public String accessToken() { return "https://openapi.waimai.meituan.com/oauth/access_token"; } @Override public String userInfo() { return "https://openapi.waimai.meituan.com/oauth/userinfo"; } @Override public String refresh() { return "https://openapi.waimai.meituan.com/oauth/refresh_token"; } }, /** * 饿了么 *
* 注:集成的是正式环境,非沙箱环境 * * @since 1.12.0 */ ELEME { @Override public String authorize() { return "https://open-api.shop.ele.me/authorize"; } @Override public String accessToken() { return "https://open-api.shop.ele.me/token"; } @Override public String userInfo() { return "https://open-api.shop.ele.me/api/v1/"; } @Override public String refresh() { return "https://open-api.shop.ele.me/token"; } }, /** * Twitter * * @since 1.13.0 */ TWITTER { @Override public String authorize() { return "https://api.twitter.com/oauth/authenticate"; } @Override public String accessToken() { return "https://api.twitter.com/oauth/access_token"; } @Override public String userInfo() { return "https://api.twitter.com/1.1/users/show.json"; } }, /** * 飞书 * 注意:该平台暂时存在问题,请不要使用。待修复完成后会重新发版 * * @since 1.14.0 */ FEISHU { @Override public String authorize() { return "https://open.feishu.cn/connect/qrconnect/page/sso/"; } @Override public String accessToken() { return "https://open.feishu.cn/connect/qrconnect/oauth2/access_token/"; } @Override public String userInfo() { return "https://open.feishu.cn/connect/qrconnect/oauth2/user_info/"; } @Override public String refresh() { return "https://open.feishu.cn/connect/qrconnect/oauth2/access_token/"; } }, /** * 京东 * * @since 1.15.0 */ JD { @Override public String authorize() { return "https://open-oauth.jd.com/oauth2/to_login"; } @Override public String accessToken() { return "https://open-oauth.jd.com/oauth2/access_token"; } @Override public String userInfo() { return "https://api.jd.com/routerjson"; } @Override public String refresh() { return "https://open-oauth.jd.com/oauth2/refresh_token"; } }, /** * 阿里云 */ ALIYUN { @Override public String authorize() { return "https://signin.aliyun.com/oauth2/v1/auth"; } @Override public String accessToken() { return "https://oauth.aliyun.com/v1/token"; } @Override public String userInfo() { return "https://oauth.aliyun.com/v1/userinfo"; } @Override public String refresh() { return "https://oauth.aliyun.com/v1/token"; } } }