目前正在适配常见的国外平台,迟一些会做国内的像 QQ 微信 WB 百度 阿里 什么的
欢迎 Star 跟进! Github:Fluocean
主要特性:
Github OAuth 示例
洋流提供了许多的重载方法,用于应对不同情况下的请求,有些带自有请求头的,也有要求必须要 Scope 的。
// 创建 OAuth 原始处理器 OAuth<GithubAccess, GithubAccess.Wrong> oauth = new GithubOAuth( "id", "secret", "https://exmaple.com/api/v0/login/oauth/github/callback" ); // 生成授权 url String url = oauth.authorize(); // 生成带参数或指定 scope String spec = oauth.authorize(List.of("email"), Map.of("Accept", "application/json")); //解析回调的 url 并获取 token // 输入原始 url 自动解析 code 以及 state oauth.token("url"); // 更改回调地址 oauth.token("url", "redirect"); // 手动指定参数 oauth.token("code", "state", "redirect"); // 处理返回值 oauth.token("code", "state", "redirect") .succeed(data -> System.out.println(data.accessToken())) .fail(wrong -> System.out.println(wrong.errorDescription())) .except(throwable -> System.out.println(throwable.getMessage())); // 假设请求成功 直接获取数据 GithubAccess access = oauth.token("code", "state", "redirect").data();
使用 Socks 代理
oauth.proxy(() -> new Request.Proxy( Proxy.Type.SOCKS, "127.0.0.1", 10086, "username", "password" ) );
更换 State 生成器
默认随机生成 UUID 并设置 300 秒有效期
oauth.state( Lazy.of(() -> new OAuthState(300, () -> UUID.randomUUID().toString())) );
更换 Http 客户端
默认使用 Okhttp 发起请求
// 实现比较繁杂 就不展示啦 x oauth.request(Lazy.of(OAuthRequest::new));
更换 Json 解析器
默认使用 Gson 作为 Json 解析器
oauth.serialization( Lazy.of(() -> new Serialization() { final Gson gson = new Gson(); @Override public <T> T object(Class<T> type, String raw) { return gson.fromJson(raw, type); } @Override public <K, V> Map<K, V> map(Class<K> key, Class<V> value, String raw) { return gson.fromJson(raw, new TypeToken<Map<K, V>>() { }.getType()); } @Override public <T> List<T> list(Class<T> type, String raw) { return gson.fromJson(raw, new TypeToken<List<T>>() { }.getType()); } }) );
![]() | 1 EvanLuo42 2023-01-06 21:32:37 +08:00 via iPhone 可以,但是好像有 justauth 了? |
![]() | 2 hanbings OP @EvanLuo42 你好,我了解过 JustAuth,以前也是 JustAuth 的用户,不可否认的是它能做到万星项目和 GVIP 说明它很受欢迎、很流行。但是 JustAuth 目前更新缓慢,不支持很多国外的平台需要自己手动适配,不支持更换 Json 解析器(这个问题已经很久了,相关 issue 都半年以上了,默认的解析器是名声不太好的 fastjson 大家都懂)。没有详细的贡献指南让我实在有点无从下手去贡献代码,权衡之下,我还是决定多造一次轮子了,感谢你的支持! |
![]() | 3 brrruski 2023-01-06 22:44:11 +08:00 via iPad 关注一波 有这方面需求 |