refactor(server): auth (#5895)

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
This commit is contained in:
liuyi
2024-03-12 10:00:09 +00:00
parent af49e8cc41
commit fb3a0e7b8f
148 changed files with 3407 additions and 2851 deletions

View File

@@ -33,9 +33,7 @@ export async function getLatestMailMessage() {
export async function getLoginCookie(
context: BrowserContext
): Promise<Cookie | undefined> {
return (await context.cookies()).find(
c => c.name === 'next-auth.session-token'
);
return (await context.cookies()).find(c => c.name === 'sid');
}
const cloudUserSchema = z.object({
@@ -106,7 +104,7 @@ export async function createRandomUser(): Promise<{
await client.user.create({
data: {
...user,
emailVerified: new Date(),
emailVerifiedAt: new Date(),
password: await hash(user.password),
features: {
create: {