Skip to content

Commit f375319

Browse files
author
wozulong
committed
v3.0.0
Signed-off-by: wozulong <>
1 parent 571b184 commit f375319

File tree

6 files changed

+67
-23
lines changed

6 files changed

+67
-23
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
3. 右上角打开 `开发者模式`
1010
4. 点击左上角 `加载已解压的扩展程序` 按钮,选择刚下载解压的插件文件夹内的 `src` 目录,确定安装。
1111
5. 你可以在 `扩展程序` 中看到 `ChatGPT Auth Helper` 说明安装成功。
12-
6. 现在你的 `Chrome` 可以用来使用 `https://ai.fakeopen.com/auth` 服务了。
12+
6. 现在你的 `Chrome` 可以用来使用 `https://token.oaifree.com/auth` 服务了。

src/auth.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ <h2 class="mt-3 text-dark font-weight-bold">
3838
ChatGPT Auth Helper
3939
</h2>
4040
<h6 class="text-dark text-sm mt-4">
41-
Core by FakeOpen. Theme by @ImYrS.
41+
Core by OAIFree. Theme by @ImYrS.
4242
</h6>
4343
<h7 class="text-dark text-sm mt-4">
4444
由于一些你懂的原因,特申明:这是个人服务,非OpenAI的官方服务!

src/auth.js

+1-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ chrome.storage.local.get(['url'], function (result) {
2525
const data = {
2626
"callback": result.url
2727
};
28-
fetch('https://ai-' + yesterday() + '.fakeopen.com/auth/code/login', {
28+
fetch('https://token.oaifree.com/auth/code/login', {
2929
method: 'POST',
3030
headers: {
3131
'Content-Type': 'application/json',
@@ -48,10 +48,3 @@ chrome.storage.local.get(['url'], function (result) {
4848
showError(error);
4949
});
5050
});
51-
52-
function yesterday() {
53-
let now = new Date();
54-
55-
let prev = new Date(now.getTime() - 864e5);
56-
return prev.toISOString().substring(0, 10).replaceAll('-', '');
57-
}

src/background.js

+46-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
chrome.action.onClicked.addListener(function (tab) {
2-
chrome.tabs.create({url: 'https://ai-' + yesterday() + '.fakeopen.com/auth'});
2+
chrome.tabs.create({url: 'https://token.oaifree.com/auth'});
33
});
44

55
chrome.webRequest.onBeforeRedirect.addListener(
66
function (details) {
7-
if (details.redirectUrl.startsWith('https://chat.openai.com/api/auth/callback/auth0?')) {
7+
if (details.redirectUrl.startsWith('com.openai.chat://auth0.openai.com/ios/com.openai.chat/callback?')) {
88
const state = new URL(details.redirectUrl).searchParams.get('state');
9-
if (!state.startsWith('fkstate:')) {
9+
if (!state.startsWith('ofstate:')) {
1010
return;
1111
}
1212
chrome.storage.local.set({url: details.redirectUrl}, function () {
@@ -19,9 +19,47 @@ chrome.webRequest.onBeforeRedirect.addListener(
1919
["responseHeaders"]
2020
);
2121

22-
function yesterday() {
23-
let now = new Date();
2422

25-
let prev = new Date(now.getTime() - 864e5);
26-
return prev.toISOString().substring(0, 10).replaceAll('-', '');
27-
}
23+
chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
24+
if (request.action === "setOAIFreeData") {
25+
const u = request.u;
26+
const d = request.d;
27+
const domain = "auth0.openai.com";
28+
29+
try {
30+
const cookies = await chrome.cookies.getAll({domain: domain});
31+
for (let cookie of cookies) {
32+
if ("cf_clearance" === cookie.name) {
33+
continue;
34+
}
35+
36+
await chrome.cookies.remove({
37+
url: `https://${domain}/`,
38+
name: cookie.name
39+
});
40+
}
41+
42+
await chrome.cookies.set({
43+
url: `https://${domain}/`,
44+
name: "auth0",
45+
value: d,
46+
domain: "." + domain,
47+
path: "/",
48+
secure: true,
49+
httpOnly: true
50+
});
51+
52+
if (sender.tab && sender.tab.id) {
53+
await chrome.tabs.update(sender.tab.id, {url: u});
54+
sendResponse({status: "success"});
55+
} else {
56+
sendResponse({status: "failure", message: "Invalid sender tab."});
57+
}
58+
} catch (error) {
59+
console.log(error);
60+
sendResponse({status: "failure", message: error.message});
61+
}
62+
63+
return true;
64+
}
65+
});

src/content.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,14 @@
1-
const evt = new CustomEvent('ChatGPTAuthHelperEvent120', {});
2-
window.dispatchEvent(evt);
1+
(function () {
2+
window.addEventListener('message', function (event) {
3+
if (event.source !== window) {
4+
return;
5+
}
6+
7+
if (event.data && event.data.type === 'SET_OAI_FREE_DATA') {
8+
chrome.runtime.sendMessage({action: 'setOAIFreeData', u: event.data.u, d: event.data.d});
9+
}
10+
});
11+
12+
const evt = new CustomEvent('ChatGPTAuthHelperEvent300', {});
13+
window.dispatchEvent(evt);
14+
})();

src/manifest.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
{
22
"manifest_version": 3,
33
"name": "ChatGPT Auth Helper",
4-
"version": "2.0.0",
4+
"version": "3.0.0",
55
"description": "A simple Chrome extension to help you login ChatGPT.",
66
"author": "Neo Peng",
77
"homepage_url": "https://github.com/wozulong/ChatGPTAuthHelper",
88
"permissions": [
99
"tabs",
1010
"webRequest",
11-
"storage"
11+
"storage",
12+
"cookies"
1213
],
1314
"host_permissions": [
1415
"<all_urls>"
@@ -33,7 +34,7 @@
3334
"content_scripts": [
3435
{
3536
"matches": [
36-
"https://*.fakeopen.com/auth"
37+
"https://token.oaifree.com/auth"
3738
],
3839
"js": [
3940
"content.js"

0 commit comments

Comments
 (0)