项目地址: LinuxDoAuthDemo
采用Jetpack Compose开发,需要手机浏览器登录了L站
接入自己应用的时候替换MainActivity中第26行的 CLIENT_ID 和第27行的 CLIENT_SECRET 就行
原理就是在Axml中自定义了一个协议头,比如我的Demo里面写的就是ldauth
如果浏览器里面输入ldauth://cn.wantu.linuxdoauth/callback这个网址,就会拉起app,本来想在LinuxDo Connect里面直接把回调地址填成这个,但提示回调地址不合法,所以我就用cf worker简单写了个重定向
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url);
if(url.pathname == "/callback") {
const code = url.searchParams.get('code');
const state = url.searchParams.get('state');
return Response.redirect(`ldauth://cn.wantu.linuxdoauth/callback?code=${code}&state=${state}`, 302);
}
return new Response('Hello World!');
}
Auth的具体原理参考大佬的帖子
Linux do Connect Docs - 资源荟萃 - LINUX DO
可以自己下载Demo体验一下
Demo下载地址:Demo.apk