mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-22 20:31:29 +03: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
71 lines
2.4 KiB
SQL
71 lines
2.4 KiB
SQL
-- DropForeignKey
|
|
ALTER TABLE "accounts" DROP CONSTRAINT "accounts_user_id_fkey";
|
|
|
|
-- DropForeignKey
|
|
ALTER TABLE "sessions" DROP CONSTRAINT "sessions_user_id_fkey";
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "user_connected_accounts" (
|
|
"id" VARCHAR(36) NOT NULL,
|
|
"user_id" VARCHAR(36) NOT NULL,
|
|
"provider" VARCHAR NOT NULL,
|
|
"provider_account_id" VARCHAR NOT NULL,
|
|
"scope" TEXT,
|
|
"access_token" TEXT,
|
|
"refresh_token" TEXT,
|
|
"expires_at" TIMESTAMPTZ(6),
|
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ(6) NOT NULL,
|
|
|
|
CONSTRAINT "user_connected_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "multiple_users_sessions" (
|
|
"id" VARCHAR(36) NOT NULL,
|
|
"expires_at" TIMESTAMPTZ(6),
|
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "multiple_users_sessions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "user_sessions" (
|
|
"id" VARCHAR(36) NOT NULL,
|
|
"session_id" VARCHAR(36) NOT NULL,
|
|
"user_id" VARCHAR(36) NOT NULL,
|
|
"expires_at" TIMESTAMPTZ(6),
|
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "user_sessions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "verification_tokens" (
|
|
"token" VARCHAR(36) NOT NULL,
|
|
"type" SMALLINT NOT NULL,
|
|
"credential" TEXT,
|
|
"expiresAt" TIMESTAMPTZ(6) NOT NULL
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "user_connected_accounts_user_id_idx" ON "user_connected_accounts"("user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "user_connected_accounts_provider_account_id_idx" ON "user_connected_accounts"("provider_account_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "user_sessions_session_id_user_id_key" ON "user_sessions"("session_id", "user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "verification_tokens_type_token_key" ON "verification_tokens"("type", "token");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user_connected_accounts" ADD CONSTRAINT "user_connected_accounts_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user_sessions" ADD CONSTRAINT "user_sessions_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "multiple_users_sessions"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user_sessions" ADD CONSTRAINT "user_sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|