【优雅+安全】GPT4私人拼车神器——轻松实现聊天隔离+链接直达+全自动刷新token

1、设备登陆过chat的了,刚刚是搞错域名了,搞成chat.xxx.xxx/?un=xxx
2、现在用tk.xxx.xxx/?un=xxx登陆,都是直接跳转到https://chat.xxx.workers.dev/auth/login
是否是rt和at都没起到作用?
还是我的 token_prefix 的问题呢

理论上如果token无效是会直接卡在tk.xx并显示错误信息的,你开个无痕试试

我也是这样了,之前正常的,现在都是跳转https://chat.xxx.workers.dev/auth/login,无痕也一样

我试了一下也不行了,貌似是始皇还在改新版的代码,导致cookie格式对不上

等始皇更新完吗

始皇已更新接口,无需再建二号worker

原内容
原原内容

更新:由于始皇代码结构调整,之前直接设置cookie的方式不生效了,需将二号worker的代码更新为以下内容

const hostname = "https://new.oaifree.com";


async function getCookies(shareToken) {
    const cookies = await fetch(`${hostname}/auth/login_token`, {
        method: 'POST',
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        body: 'action=token&access_token=' + encodeURIComponent(shareToken),
    })
        .then(response => {
            return response.headers.get('Set-Cookie');
        })
    return cookies
}

async function handleRequest(request) {
    let url = new URL(request.url);
    if (url.pathname === '/setcookie.html') {
        const accessToken = url.searchParams.get('access_token');
        if (accessToken) {
            const cookies = await getCookies(accessToken);
            const response = Response.redirect(url.origin, 302);
            const newHeaders = new Headers(response.headers);
            newHeaders.append("Set-Cookie", cookies);
            const modifiedResponse = new Response(response.body, {
                status: response.status,
                statusText: response.statusText,
                headers: newHeaders
              });
            return modifiedResponse;
        }
    }
    return fetch(new Request(hostname + url.pathname, request));
}

addEventListener("fetch", (event) => {
    event.respondWith(handleRequest(event.request));
});

有需要的话二号worker可以用始皇版反代:

反代后记得把proxied_domain同步更改为反代worker的地址

代码更新了,看楼上

代码已更新

感谢收藏了,慢慢消化一下

貌似依旧不行,无痕试了一下

厉害的。如果能限制用户的访问频率就更好了,就怕某个人疯狂用 :rofl:

lbw???
是辣个男人吗

1 个赞

还是没理解 token_prefix用来干嘛的

同样疑惑,我尝试?un=token_prefix设定的值拼贴users里面设定的某一个元素。提示用户不存在。

好像还是不行

mark

又更新了一版,现在可以了

又更新了一版,多个浏览器测试都没问题了

token_prefix可以留空的,加上这个只是为了避免username太短导致和别人的撞上

直接访问时不需要加token_prefix,这个只是在后台生成share_token的时候自动加的,避免短用户名遇上同名情况,如果不想用这个在变量值留空或者把代码这部分删掉就行,不影响功能

2 个赞