mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-14 08:36:22 +08:00
fb3a0e7b8f
Remove `next-auth` and implement our own Authorization/Authentication system from scratch.
## Server
- [x] tokens
- [x] function
- [x] encryption
- [x] AuthController
- [x] /api/auth/sign-in
- [x] /api/auth/sign-out
- [x] /api/auth/session
- [x] /api/auth/session (WE SUPPORT MULTI-ACCOUNT!)
- [x] OAuthPlugin
- [x] OAuthController
- [x] /oauth/login
- [x] /oauth/callback
- [x] Providers
- [x] Google
- [x] GitHub
## Client
- [x] useSession
- [x] cloudSignIn
- [x] cloudSignOut
## NOTE:
Tests will be adding in the future
29 lines
851 B
TypeScript
29 lines
851 B
TypeScript
import { GCloudConfig } from './gcloud/config';
|
|
import { OAuthConfig } from './oauth';
|
|
import { PaymentConfig } from './payment';
|
|
import { RedisOptions } from './redis';
|
|
import { R2StorageConfig, S3StorageConfig } from './storage';
|
|
|
|
declare module '../fundamentals/config' {
|
|
interface PluginsConfig {
|
|
readonly payment: PaymentConfig;
|
|
readonly redis: RedisOptions;
|
|
readonly gcloud: GCloudConfig;
|
|
readonly 'cloudflare-r2': R2StorageConfig;
|
|
readonly 'aws-s3': S3StorageConfig;
|
|
readonly oauth: OAuthConfig;
|
|
}
|
|
|
|
export type AvailablePlugins = keyof PluginsConfig;
|
|
|
|
interface AFFiNEConfig {
|
|
readonly plugins: {
|
|
enabled: Set<AvailablePlugins>;
|
|
use<Plugin extends AvailablePlugins>(
|
|
plugin: Plugin,
|
|
config?: DeepPartial<PluginsConfig[Plugin]>
|
|
): void;
|
|
} & Partial<PluginsConfig>;
|
|
}
|
|
}
|