From 5ad713bb75f447ef551331509fdc7105f395169d Mon Sep 17 00:00:00 2001 From: Laurenz Rausche Date: Thu, 9 May 2024 22:03:00 +0000 Subject: [PATCH] updated protocol --- packages/base/package.json | 2 +- packages/base/src/protocol/index.ts | 15 +++++++------- packages/server/local/index.ts | 15 +++++++++++++- packages/server/package.json | 4 ++-- packages/server/src/methods/check.ts | 11 +++++------ packages/server/src/methods/login.ts | 11 +++++------ packages/server/src/methods/logout.ts | 11 +++++------ packages/server/src/methods/refresh.ts | 11 +++++------ packages/server/src/methods/register.ts | 11 +++++------ packages/server/src/methods/validate.ts | 11 +++++------ packages/server/src/senders.ts | 26 ++++++++++++------------- 11 files changed, 66 insertions(+), 62 deletions(-) diff --git a/packages/base/package.json b/packages/base/package.json index 6ffff23..c6c5f65 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -1,6 +1,6 @@ { "name": "@auth-tools/base", - "version": "0.0.1-alpha.2", + "version": "0.0.1-alpha.4", "description": "A structured authentication protocol for Javascript. (base)", "main": "dist/index.js", "repository": "https://github.com/auth-tools/auth-tools", diff --git a/packages/base/src/protocol/index.ts b/packages/base/src/protocol/index.ts index 5ec6530..0600909 100644 --- a/packages/base/src/protocol/index.ts +++ b/packages/base/src/protocol/index.ts @@ -19,14 +19,13 @@ type AuthResponseBuilder< InterceptCode extends number = 0, AuthMessage = AuthMessages[`${Method}_${StatusCode}`] > = { - auth: { - error: StatusCode extends 0 ? false : true; - errorType: Method extends "server" ? "server" : "method"; - message: AuthMessage; - codes: { - status: StatusCode; - intercept: InterceptCode; - }; + error: StatusCode extends 0 ? false : true; + intercepted: InterceptCode extends 0 ? false : true, + errorType: Method extends "server" ? "server" : "method"; + message: AuthMessage; + codes: { + status: StatusCode; + intercept: InterceptCode; }; data: ResponseData; }; diff --git a/packages/server/local/index.ts b/packages/server/local/index.ts index f1bc454..b8ce04a 100644 --- a/packages/server/local/index.ts +++ b/packages/server/local/index.ts @@ -1,6 +1,10 @@ import { UserData } from "@auth-tools/base"; import { Logger } from "@auth-tools/logger"; -import { AuthServer, AuthServerConfig } from "@auth-tools/server"; +import { + AuthServer, + AuthServerConfig, + AuthServerMethod, +} from "@auth-tools/server"; const Users: UserData[] = []; const Tokens: string[] = []; @@ -70,3 +74,12 @@ authServer.use("genId", ({}) => { const id = Users.length.toString(); return { serverError: false, id }; }); +(async () => { + console.log( + await (authServer.methods.register as AuthServerMethod<"register">)({ + email: "as@as", + username: "as", + password: "sd", + }) + ); +})(); diff --git a/packages/server/package.json b/packages/server/package.json index 2261f16..2b025f4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@auth-tools/server", - "version": "0.0.1-alpha.1", + "version": "0.0.1-alpha.2", "description": "A structured authentication protocol for Javascript. (server)", "main": "dist/index.js", "repository": "https://github.com/auth-tools/auth-tools", @@ -15,7 +15,7 @@ "remove": "npm run build:remove && rimraf node_modules yarn.lock package-lock.json pnpm-lock.yaml" }, "dependencies": { - "@auth-tools/base": "^0.0.1-alpha.2", + "@auth-tools/base": "^0.0.1-alpha.4", "jsonwebtoken": "^9.0.2" }, "devDependencies": { diff --git a/packages/server/src/methods/check.ts b/packages/server/src/methods/check.ts index 4cf6e78..bc8a0dc 100644 --- a/packages/server/src/methods/check.ts +++ b/packages/server/src/methods/check.ts @@ -82,12 +82,11 @@ export function createCheck( ); return { - auth: { - error: false, - errorType: "method", - message: "Check successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Check successful.", + codes: { status: 0, intercept: 0 }, data: null, }; } catch (error) { diff --git a/packages/server/src/methods/login.ts b/packages/server/src/methods/login.ts index 4411de3..a257ab1 100644 --- a/packages/server/src/methods/login.ts +++ b/packages/server/src/methods/login.ts @@ -113,12 +113,11 @@ export function createLogin( if (storeToken.serverError) return authServerError(); return { - auth: { - error: false, - errorType: "method", - message: "Login successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Login successful.", + codes: { status: 0, intercept: 0 }, data: { accessToken, refreshToken }, }; } catch (error) { diff --git a/packages/server/src/methods/logout.ts b/packages/server/src/methods/logout.ts index 2f3e307..89ea3d0 100644 --- a/packages/server/src/methods/logout.ts +++ b/packages/server/src/methods/logout.ts @@ -71,12 +71,11 @@ export function createLogout( if (deleteToken.serverError) return authServerError(); return { - auth: { - error: false, - errorType: "method", - message: "Logout successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Logout successful.", + codes: { status: 0, intercept: 0 }, data: null, }; } catch (error) { diff --git a/packages/server/src/methods/refresh.ts b/packages/server/src/methods/refresh.ts index 106d106..90012d2 100644 --- a/packages/server/src/methods/refresh.ts +++ b/packages/server/src/methods/refresh.ts @@ -71,12 +71,11 @@ export function createRefresh( ); return { - auth: { - error: false, - errorType: "method", - message: "Refresh successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Refresh successful.", + codes: { status: 0, intercept: 0 }, data: { accessToken }, }; } catch (error) { diff --git a/packages/server/src/methods/register.ts b/packages/server/src/methods/register.ts index ecdc4c8..8b87908 100644 --- a/packages/server/src/methods/register.ts +++ b/packages/server/src/methods/register.ts @@ -130,12 +130,11 @@ export function createRegister( if (storeUser.serverError) return authServerError(); return { - auth: { - error: false, - errorType: "method", - message: "Registration successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Registration successful.", + codes: { status: 0, intercept: 0 }, data: { id: user.id, email: user.email, username: user.username }, }; } catch (error) { diff --git a/packages/server/src/methods/validate.ts b/packages/server/src/methods/validate.ts index 7a6bde3..aa8f978 100644 --- a/packages/server/src/methods/validate.ts +++ b/packages/server/src/methods/validate.ts @@ -40,12 +40,11 @@ export function createValidate( } return { - auth: { - error: false, - errorType: "method", - message: "Validation successful.", - codes: { status: 0, intercept: 0 }, - }, + error: false, + intercepted: false, + errorType: "method", + message: "Validation successful.", + codes: { status: 0, intercept: 0 }, data: { id: decodeAccessToken.payload.id }, }; } catch (error) { diff --git a/packages/server/src/senders.ts b/packages/server/src/senders.ts index 9110efc..9fa4bf9 100644 --- a/packages/server/src/senders.ts +++ b/packages/server/src/senders.ts @@ -9,14 +9,13 @@ export function authError< interceptCode: number = 0 ): AuthResponse { return { - auth: { - error: true, - errorType: "method", - message: message, - codes: { - status: statusCode, - intercept: interceptCode, - }, + error: true, + intercepted: interceptCode === 0 ? false : true, + errorType: "method", + message: message, + codes: { + status: statusCode, + intercept: interceptCode, }, data: null, } as AuthResponse; @@ -24,12 +23,11 @@ export function authError< export function authServerError(): AuthProtocol[keyof AuthProtocol]["responses"]["server_5"] { return { - auth: { - error: true, - errorType: "server", - message: "An error occurred on the server. Please try again later.", - codes: { status: 5, intercept: 0 }, - }, + error: true, + intercepted: false, + errorType: "server", + message: "An error occurred on the server. Please try again later.", + codes: { status: 5, intercept: 0 }, data: null, }; }