63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
--- a/src/state/session/agent.ts
|
|
+++ b/src/state/session/agent.ts
|
|
@@ -43,12 +43,18 @@
|
|
|
|
export type ProxyHeaderValue = `${Did}#${AtprotoServiceType}`
|
|
|
|
+// Default Bluesky proxy DID for non-self-hosted accounts (bsky.social etc.)
|
|
+const DEFAULT_BSKY_PROXY: ProxyHeaderValue = 'did:web:api.bsky.app#bsky_appview'
|
|
+
|
|
+function shouldUseProxy(serviceUrl: string): boolean {
|
|
+ return !serviceUrl.startsWith(BSKY_SERVICE)
|
|
+}
|
|
+
|
|
export function createPublicAgent() {
|
|
configureModerationForGuest() // Side effect but only relevant for tests
|
|
|
|
const agent = new BskyAppAgent({service: PUBLIC_BSKY_SERVICE})
|
|
- // Disable proxy for self-hosted environments
|
|
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
|
+ // Self-hosted public agent doesn't need proxy
|
|
return agent
|
|
}
|
|
|
|
@@ -91,8 +97,10 @@
|
|
// after session is attached
|
|
const aa = prefetchAgeAssuranceData({agent})
|
|
|
|
- // Disable proxy for self-hosted environments
|
|
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
|
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
|
|
+ if (shouldUseProxy(storedAccount.service)) {
|
|
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
|
|
+ }
|
|
|
|
return agent.prepare({
|
|
resolvers: [gates, moderation, aa],
|
|
@@ -131,8 +139,10 @@
|
|
const moderation = configureModerationForAccount(agent, account)
|
|
const aa = prefetchAgeAssuranceData({agent})
|
|
|
|
- // Disable proxy for self-hosted environments
|
|
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
|
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
|
|
+ if (shouldUseProxy(service)) {
|
|
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
|
|
+ }
|
|
|
|
return agent.prepare({
|
|
resolvers: [gates, moderation, aa],
|
|
@@ -304,8 +314,10 @@
|
|
logger.error(e, {message: `session: failed snoozeEmailConfirmationPrompt`})
|
|
}
|
|
|
|
- // Disable proxy for self-hosted environments
|
|
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
|
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
|
|
+ if (shouldUseProxy(service)) {
|
|
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
|
|
+ }
|
|
|
|
return agent.prepare({
|
|
resolvers: [gates, moderation, aa],
|