Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
gcslaoli committed Apr 13, 2024
1 parent b4506d9 commit b960b05
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 2 deletions.
46 changes: 44 additions & 2 deletions public-api/proxypublic.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,58 @@
package publicapi

import (
backendapi "chatgpt-mirror-server/backend-api"
"chatgpt-mirror-server/config"
"chatgpt-mirror-server/utility"
"net/http"
"net/http/httputil"
"net/url"
"time"

"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gctx"
)

var (
u, _ = url.Parse(config.CHATPROXY(gctx.New()))
proxy = httputil.NewSingleHostReverseProxy(u)
)

func ProxyPublic(r *ghttp.Request) {
ctx := r.GetCtx()
u, _ := url.Parse(config.CHATPROXY(ctx))
proxy := httputil.NewSingleHostReverseProxy(u)
userToken := ""
Authorization := r.Header.Get("Authorization")
if Authorization != "" {
userToken = r.Header.Get("Authorization")[7:]
}
g.Log().Debug(ctx, "userToken", userToken)

officialAccessToken := ""
if userToken != "" {
officialAccessToken = backendapi.AccessTokenCache.MustGet(ctx, userToken).String()
if officialAccessToken == "" {
record, _, err := backendapi.ChatgptSessionService.GetSessionByUserToken(ctx, userToken)
if err != nil {
g.Log().Error(ctx, err)
r.Response.WriteStatus(http.StatusUnauthorized)
return
}
if record.IsEmpty() {
g.Log().Error(ctx, "session is empty")
r.Response.WriteStatus(http.StatusUnauthorized)
return
}
officialSession := record["officialSession"].String()
if officialSession == "" {
r.Response.WriteStatus(http.StatusUnauthorized)
return
}
officialAccessToken = utility.AccessTokenFormSession(officialSession)
backendapi.AccessTokenCache.Set(ctx, userToken, officialAccessToken, time.Minute)
}
}

proxy.ErrorHandler = func(writer http.ResponseWriter, request *http.Request, e error) {
g.Log().Error(ctx, e)
writer.WriteHeader(http.StatusBadGateway)
Expand All @@ -22,6 +61,9 @@ func ProxyPublic(r *ghttp.Request) {
newreq.URL.Host = u.Host
newreq.URL.Scheme = u.Scheme
newreq.Host = u.Host
if userToken != "" {
newreq.Header.Set("Authorization", "Bearer "+officialAccessToken)
}
// newreq.Header.Set("Cookie", "__Secure-next-auth.session-token="+carinfo.RefreshCookie)
// // 去除header 中的 压缩
// newreq.Header.Del("Accept-Encoding")
Expand Down
1 change: 1 addition & 0 deletions resource/template/__VtdGuo2T55cu1fqCkoX/chat.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!DOCTYPE html><html data-build="prod-c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"><head>{{.envScript}}<meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="apple-touch-icon" sizes="180x180" href="{{.assetPrefix}}/_next/static/media/apple-touch-icon.59f2e898.png" /><link rel="icon" type="image/png" sizes="32x32" href="{{.assetPrefix}}/_next/static/media/favicon-32x32.be48395e.png" /><link rel="icon" type="image/png" sizes="16x16" href="{{.assetPrefix}}/_next/static/media/favicon-16x16.9b8dbb69.png" /><link rel="preconnect" href="{{.assetPrefix}}" /><title>ChatGPT</title><meta name="title" content="ChatGPT: Get instant answers, find inspiration, learn something new" /><meta name="description" content="ChatGPT is a free-to-use AI system. Use it for engaging conversations, gain insights, automate tasks, and witness the future of AI, all in one place." /><meta name="keywords" content="ai chat,ai,chap gpt,chat gbt,chat gpt 3,chat gpt login,chat gpt website,chat gpt,chat gtp,chat openai,chat,chatai,chatbot gpt,chatg,chatgpt login,chatgpt,gpt chat,open ai,openai chat,openai chatgpt,openai" /><meta property="og:description" content="A conversational AI system that listens, learns, and challenges" /><meta name="robots" content="index, follow" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta property="og:title" content="ChatGPT" /><meta property="og:image" content="{{.assetPrefix}}/_next/static/media/chatgpt-share-og.49cbbffe.png" /><meta property="og:url" content="https://chat.openai.com" /><meta name="apple-itunes-app" content="app-id=6448311069" /><meta name="next-head-count" content="17" /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-buch.13189857.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-halbfett.977f1845.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-kraftig.204b461c.woff2" as="font" crossorigin /><link data-next-font rel="preconnect" href="/" crossorigin="anonymous" /><link rel="preload" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" as="style" crossorigin="anonymous" /><link rel="stylesheet" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" crossorigin="anonymous" data-n-g /><noscript data-n-css></noscript><script defer crossorigin="anonymous" nomodule src="{{.assetPrefix}}/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"></script><script src="{{.assetPrefix}}/_next/static/chunks/webpack-4874e53dba469ea2.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/framework-d69d7cd8328ac368.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/vendor-f84763d8ecab7aaf.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/main-e7f84069c815d1a0.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/_app-ed6089da80a5c945.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/%5B%5B...default%5D%5D-afdd4e016ec92443.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_buildManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_ssgManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script></head><body class="antialiased"><div id="__next"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div class="relative z-0 flex h-full w-full overflow-hidden"><div class="relative flex h-full max-w-full flex-1 flex-col overflow-hidden"><main class="relative h-full w-full flex-1 overflow-auto transition-width"></main></div></div><div class="absolute left-0 right-0 top-0 z-[2]"></div><audio class="fixed bottom-0 left-0 hidden h-0 w-0" autoplay crossorigin="anonymous"></audio></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{{.props}}</script><script></script></body></html>
1 change: 1 addition & 0 deletions resource/template/__VtdGuo2T55cu1fqCkoX/discovery.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!DOCTYPE html><html data-build="prod-c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"><head>{{.envScript}}<meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="apple-touch-icon" sizes="180x180" href="{{.assetPrefix}}/_next/static/media/apple-touch-icon.59f2e898.png" /><link rel="icon" type="image/png" sizes="32x32" href="{{.assetPrefix}}/_next/static/media/favicon-32x32.be48395e.png" /><link rel="icon" type="image/png" sizes="16x16" href="{{.assetPrefix}}/_next/static/media/favicon-16x16.9b8dbb69.png" /><link rel="preconnect" href="{{.assetPrefix}}" /><title>ChatGPT</title><meta name="title" content="ChatGPT: Get instant answers, find inspiration, learn something new" /><meta name="description" content="ChatGPT is a free-to-use AI system. Use it for engaging conversations, gain insights, automate tasks, and witness the future of AI, all in one place." /><meta name="keywords" content="ai chat,ai,chap gpt,chat gbt,chat gpt 3,chat gpt login,chat gpt website,chat gpt,chat gtp,chat openai,chat,chatai,chatbot gpt,chatg,chatgpt login,chatgpt,gpt chat,open ai,openai chat,openai chatgpt,openai" /><meta property="og:description" content="A conversational AI system that listens, learns, and challenges" /><meta name="robots" content="index, follow" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta property="og:title" content="ChatGPT" /><meta property="og:image" content="{{.assetPrefix}}/_next/static/media/chatgpt-share-og.49cbbffe.png" /><meta property="og:url" content="https://chat.openai.com" /><meta name="apple-itunes-app" content="app-id=6448311069" /><meta name="next-head-count" content="17" /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-buch.13189857.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-halbfett.977f1845.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-kraftig.204b461c.woff2" as="font" crossorigin /><link data-next-font rel="preconnect" href="/" crossorigin="anonymous" /><link rel="preload" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" as="style" crossorigin="anonymous" /><link rel="stylesheet" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" crossorigin="anonymous" data-n-g /><noscript data-n-css></noscript><script defer crossorigin="anonymous" nomodule src="{{.assetPrefix}}/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"></script><script src="{{.assetPrefix}}/_next/static/chunks/webpack-4874e53dba469ea2.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/framework-d69d7cd8328ac368.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/vendor-f84763d8ecab7aaf.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/main-e7f84069c815d1a0.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/_app-ed6089da80a5c945.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/gpts-45feae9fd6f43b5a.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_buildManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_ssgManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script></head><body class="antialiased"><div id="__next"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div class="absolute left-0 right-0 top-0 z-[2]"></div><audio class="fixed bottom-0 left-0 hidden h-0 w-0" autoplay crossorigin="anonymous"></audio></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{{.props}}</script><script></script></body></html>
1 change: 1 addition & 0 deletions resource/template/__VtdGuo2T55cu1fqCkoX/editor.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!DOCTYPE html><html data-build="prod-c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"><head>{{.envScript}}<meta charSet="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="apple-touch-icon" sizes="180x180" href="{{.assetPrefix}}/_next/static/media/apple-touch-icon.59f2e898.png" /><link rel="icon" type="image/png" sizes="32x32" href="{{.assetPrefix}}/_next/static/media/favicon-32x32.be48395e.png" /><link rel="icon" type="image/png" sizes="16x16" href="{{.assetPrefix}}/_next/static/media/favicon-16x16.9b8dbb69.png" /><link rel="preconnect" href="{{.assetPrefix}}" /><title>ChatGPT</title><meta name="title" content="ChatGPT: Get instant answers, find inspiration, learn something new" /><meta name="description" content="ChatGPT is a free-to-use AI system. Use it for engaging conversations, gain insights, automate tasks, and witness the future of AI, all in one place." /><meta name="keywords" content="ai chat,ai,chap gpt,chat gbt,chat gpt 3,chat gpt login,chat gpt website,chat gpt,chat gtp,chat openai,chat,chatai,chatbot gpt,chatg,chatgpt login,chatgpt,gpt chat,open ai,openai chat,openai chatgpt,openai" /><meta property="og:description" content="A conversational AI system that listens, learns, and challenges" /><meta name="robots" content="index, follow" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta property="og:title" content="ChatGPT" /><meta property="og:image" content="{{.assetPrefix}}/_next/static/media/chatgpt-share-og.49cbbffe.png" /><meta property="og:url" content="https://chat.openai.com" /><meta name="apple-itunes-app" content="app-id=6448311069" /><meta name="next-head-count" content="17" /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-buch.13189857.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-halbfett.977f1845.woff2" as="font" crossorigin /><link rel="preload" href="{{.assetPrefix}}/_next/static/media/soehne-kraftig.204b461c.woff2" as="font" crossorigin /><link data-next-font rel="preconnect" href="/" crossorigin="anonymous" /><link rel="preload" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" as="style" crossorigin="anonymous" /><link rel="stylesheet" href="{{.assetPrefix}}/_next/static/css/ddf31e954a838f46.css?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" crossorigin="anonymous" data-n-g /><noscript data-n-css></noscript><script defer crossorigin="anonymous" nomodule src="{{.assetPrefix}}/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40"></script><script src="{{.assetPrefix}}/_next/static/chunks/webpack-4874e53dba469ea2.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/framework-d69d7cd8328ac368.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/vendor-f84763d8ecab7aaf.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/main-e7f84069c815d1a0.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/_app-ed6089da80a5c945.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/chunks/pages/gpts/editor-051b3362a1d35962.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_buildManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script><script src="{{.assetPrefix}}/_next/static/__VtdGuo2T55cu1fqCkoX/_ssgManifest.js?dpl=c9884a73de7e6365f3daaaf9bc0cdfff63c2cc40" defer crossorigin="anonymous"></script></head><body class="antialiased"><div id="__next"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div class="absolute left-0 right-0 top-0 z-[2]"></div><audio class="fixed bottom-0 left-0 hidden h-0 w-0" autoplay crossorigin="anonymous"></audio></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{{.props}}</script><script></script></body></html>
Loading

0 comments on commit b960b05

Please sign in to comment.