mirror of
https://github.com/wassname/chatGPTBox.git
synced 2026-06-27 19:14:37 +08:00
fix: continuous 403 error caused by still requesting the official website when using reverse proxy (#207)
This commit is contained in:
Generated
-31
@@ -11,7 +11,6 @@
|
||||
"@primer/octicons-react": "^18.2.0",
|
||||
"countries-list": "^2.6.1",
|
||||
"eventsource-parser": "^0.1.0",
|
||||
"expiry-map": "^2.0.0",
|
||||
"file-saver": "^2.0.5",
|
||||
"github-markdown-css": "^5.2.0",
|
||||
"gpt-3-encoder": "^1.1.4",
|
||||
@@ -4210,17 +4209,6 @@
|
||||
"node": ">=14.18"
|
||||
}
|
||||
},
|
||||
"node_modules/expiry-map": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/expiry-map/-/expiry-map-2.0.0.tgz",
|
||||
"integrity": "sha512-K1I5wJe2fiqjyUZf/xhxwTpaopw3F+19DsO7Oggl20+3SVTXDIevVRJav0aBMfposQdkl2E4+gnuOKd3j2X0sA==",
|
||||
"dependencies": {
|
||||
"map-age-cleaner": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
|
||||
@@ -5756,17 +5744,6 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/map-age-cleaner": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.2.0.tgz",
|
||||
"integrity": "sha512-AvxTC6id0fzSf6OyNBTp1syyCuKO7nOJvHgYlhT0Qkkjvk40zZo+av3ayVgXlxnF/DxEzEfY9mMdd7FHsd+wKQ==",
|
||||
"dependencies": {
|
||||
"p-defer": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.6"
|
||||
}
|
||||
},
|
||||
"node_modules/markdown-table": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz",
|
||||
@@ -6611,14 +6588,6 @@
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/p-defer": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/p-defer/-/p-defer-1.0.0.tgz",
|
||||
"integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
"@primer/octicons-react": "^18.2.0",
|
||||
"countries-list": "^2.6.1",
|
||||
"eventsource-parser": "^0.1.0",
|
||||
"expiry-map": "^2.0.0",
|
||||
"file-saver": "^2.0.5",
|
||||
"github-markdown-css": "^5.2.0",
|
||||
"gpt-3-encoder": "^1.1.4",
|
||||
|
||||
@@ -73,9 +73,6 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
}
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
},
|
||||
@@ -139,9 +136,6 @@ export async function generateAnswersWithChatgptApi(port, question, session, api
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
}
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
},
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import Browser from 'webextension-polyfill'
|
||||
import ExpiryMap from 'expiry-map'
|
||||
import {
|
||||
deleteConversation,
|
||||
generateAnswersWithChatgptWebApi,
|
||||
@@ -18,6 +17,7 @@ import {
|
||||
bingWebModelKeys,
|
||||
chatgptApiModelKeys,
|
||||
chatgptWebModelKeys,
|
||||
clearOldAccessToken,
|
||||
customApiModelKeys,
|
||||
defaultConfig,
|
||||
getPreferredLanguageKey,
|
||||
@@ -25,27 +25,18 @@ import {
|
||||
githubThirdPartyApiModelKeys,
|
||||
gptApiModelKeys,
|
||||
Models,
|
||||
setAccessToken,
|
||||
} from '../config/index.mjs'
|
||||
import { isSafari } from '../utils/is-safari'
|
||||
import { config as menuConfig } from '../content-script/menu-tools'
|
||||
import { t, changeLanguage } from 'i18next'
|
||||
import '../_locales/i18n'
|
||||
import { openUrl } from '../utils/open-url'
|
||||
|
||||
const KEY_ACCESS_TOKEN = 'accessToken'
|
||||
const cache = new ExpiryMap(10 * 1000)
|
||||
|
||||
async function getChatGptAccessToken() {
|
||||
if (cache.get(KEY_ACCESS_TOKEN)) {
|
||||
return cache.get(KEY_ACCESS_TOKEN)
|
||||
}
|
||||
if (isSafari()) {
|
||||
const userConfig = await getUserConfig()
|
||||
if (userConfig.accessToken) {
|
||||
cache.set(KEY_ACCESS_TOKEN, userConfig.accessToken)
|
||||
} else {
|
||||
throw new Error('UNAUTHORIZED')
|
||||
}
|
||||
await clearOldAccessToken()
|
||||
const userConfig = await getUserConfig()
|
||||
if (userConfig.accessToken) {
|
||||
return userConfig.accessToken
|
||||
} else {
|
||||
const resp = await fetch('https://chat.openai.com/api/auth/session')
|
||||
if (resp.status === 403) {
|
||||
@@ -55,9 +46,9 @@ async function getChatGptAccessToken() {
|
||||
if (!data.accessToken) {
|
||||
throw new Error('UNAUTHORIZED')
|
||||
}
|
||||
cache.set(KEY_ACCESS_TOKEN, data.accessToken)
|
||||
await setAccessToken(data.accessToken)
|
||||
return data.accessToken
|
||||
}
|
||||
return cache.get(KEY_ACCESS_TOKEN)
|
||||
}
|
||||
|
||||
async function getBingAccessToken() {
|
||||
@@ -118,8 +109,6 @@ Browser.runtime.onConnect.addListener((port) => {
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
if (!err.message.includes('aborted')) {
|
||||
cache.delete(KEY_ACCESS_TOKEN)
|
||||
|
||||
if (
|
||||
['message you submitted was too long', 'maximum context length'].some((m) =>
|
||||
err.message.includes(m),
|
||||
|
||||
@@ -5,19 +5,13 @@ import DecisionCard from '../components/DecisionCard'
|
||||
import { config as siteConfig } from './site-adapters'
|
||||
import { config as toolsConfig } from './selection-tools'
|
||||
import { config as menuConfig } from './menu-tools'
|
||||
import {
|
||||
clearOldAccessToken,
|
||||
getPreferredLanguageKey,
|
||||
getUserConfig,
|
||||
setAccessToken,
|
||||
} from '../config/index.mjs'
|
||||
import { getPreferredLanguageKey, getUserConfig, setAccessToken } from '../config/index.mjs'
|
||||
import {
|
||||
createElementAtPosition,
|
||||
cropText,
|
||||
getClientPosition,
|
||||
getPossibleElementByQuerySelector,
|
||||
initSession,
|
||||
isSafari,
|
||||
} from '../utils'
|
||||
import FloatingToolbar from '../components/FloatingToolbar'
|
||||
import Browser from 'webextension-polyfill'
|
||||
@@ -100,9 +94,7 @@ async function getInput(inputQuery) {
|
||||
}
|
||||
}
|
||||
|
||||
async function prepareForSafari() {
|
||||
await clearOldAccessToken()
|
||||
|
||||
async function overwriteAccessToken() {
|
||||
if (location.hostname !== 'chat.openai.com' || location.pathname !== '/api/auth/session') return
|
||||
|
||||
const response = document.querySelector('pre').textContent
|
||||
@@ -116,6 +108,7 @@ async function prepareForSafari() {
|
||||
}
|
||||
if (data.accessToken) {
|
||||
await setAccessToken(data.accessToken)
|
||||
console.log(data.accessToken)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,7 +301,8 @@ async function run() {
|
||||
}
|
||||
})
|
||||
|
||||
if (isSafari()) await prepareForSafari()
|
||||
await overwriteAccessToken()
|
||||
|
||||
prepareForSelectionTools()
|
||||
prepareForSelectionToolsTouch()
|
||||
prepareForStaticCard()
|
||||
|
||||
Reference in New Issue
Block a user