kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
pull/715/head
rodzic
af9e4411e9
commit
5b23dd92ed
|
@ -3,7 +3,7 @@ import { betterAuth } from 'better-auth'
|
||||||
import { drizzleAdapter } from 'better-auth/adapters/drizzle'
|
import { drizzleAdapter } from 'better-auth/adapters/drizzle'
|
||||||
import { username } from 'better-auth/plugins'
|
import { username } from 'better-auth/plugins'
|
||||||
|
|
||||||
import { createIdForModel, db } from '@/db'
|
import { createIdForModel, db, type ModelType } from '@/db'
|
||||||
|
|
||||||
import { env } from './env'
|
import { env } from './env'
|
||||||
|
|
||||||
|
@ -13,7 +13,10 @@ export const auth = betterAuth({
|
||||||
database: drizzleAdapter(db, {
|
database: drizzleAdapter(db, {
|
||||||
provider: 'pg'
|
provider: 'pg'
|
||||||
}),
|
}),
|
||||||
trustedOrigins: ['http://localhost:6013'],
|
trustedOrigins: [
|
||||||
|
// Used for an oauth redirect when authenticating via the CLI
|
||||||
|
'http://localhost:6013'
|
||||||
|
],
|
||||||
emailAndPassword: {
|
emailAndPassword: {
|
||||||
enabled: true
|
enabled: true
|
||||||
},
|
},
|
||||||
|
@ -61,7 +64,7 @@ export const auth = betterAuth({
|
||||||
},
|
},
|
||||||
advanced: {
|
advanced: {
|
||||||
database: {
|
database: {
|
||||||
generateId: ({ model }) => createIdForModel(model as any)
|
generateId: ({ model }) => createIdForModel(model as ModelType)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
|
|
|
@ -21,6 +21,12 @@ export async function authWithGitHub({
|
||||||
const port = await getPort({ port: preferredPort })
|
const port = await getPort({ port: preferredPort })
|
||||||
const app = new Hono()
|
const app = new Hono()
|
||||||
|
|
||||||
|
if (port !== preferredPort) {
|
||||||
|
throw new Error(
|
||||||
|
`Port ${preferredPort} is required to authenticate with GitHub, but it is already in use.`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
let _resolveAuth: any
|
let _resolveAuth: any
|
||||||
let _rejectAuth: any
|
let _rejectAuth: any
|
||||||
|
|
||||||
|
@ -66,6 +72,7 @@ export async function authWithGitHub({
|
||||||
|
|
||||||
const res = await client.authClient.signIn.social({
|
const res = await client.authClient.signIn.social({
|
||||||
provider: 'github',
|
provider: 'github',
|
||||||
|
// TODO: add error url as well
|
||||||
callbackURL: `http://localhost:${port}/callback/github/success`
|
callbackURL: `http://localhost:${port}/callback/github/success`
|
||||||
})
|
})
|
||||||
assert(
|
assert(
|
||||||
|
|
|
@ -17,6 +17,13 @@
|
||||||
- decide on approach for auth
|
- decide on approach for auth
|
||||||
- built-in, first-party, tight coupling
|
- built-in, first-party, tight coupling
|
||||||
- https://www.better-auth.com
|
- https://www.better-auth.com
|
||||||
|
- issues
|
||||||
|
- doesn't allow dynamic social provider config
|
||||||
|
- awkward schema cli generation and constraints
|
||||||
|
- awkward cookie-only session support (need JWTs for CLI and SDK)
|
||||||
|
- client uses dynamic proxy for methods which makes DX awkward
|
||||||
|
- should be able to use custom `ky`-based client
|
||||||
|
- drizzle pg adapter requires `Date` timestamps instead of default strings
|
||||||
- https://github.com/toolbeam/openauth
|
- https://github.com/toolbeam/openauth
|
||||||
- https://github.com/aipotheosis-labs/aci/tree/main/backend/apps
|
- https://github.com/aipotheosis-labs/aci/tree/main/backend/apps
|
||||||
- https://github.com/NangoHQ/nango
|
- https://github.com/NangoHQ/nango
|
||||||
|
|
Ładowanie…
Reference in New Issue