Initial Typescript models.

This commit is contained in:
Brian Cao 2022-11-15 13:21:14 -08:00
parent 04e9f06e93
commit 0aaba8cbd1
74 changed files with 1144 additions and 768 deletions

View file

@ -10,8 +10,24 @@ import {
import { getUser } from 'queries';
import { secret } from 'lib/crypto';
import redis from 'lib/redis';
import { NextApiRequestQueryBody } from 'interface/api/nextApi';
import { NextApiResponse } from 'next';
import { User } from 'interface/api/models';
export default async (req, res) => {
export interface LoginRequestBody {
username: string;
password: string;
}
export interface LoginResponse {
token: string;
user: User;
}
export default async (
req: NextApiRequestQueryBody<any, LoginRequestBody>,
res: NextApiResponse<LoginResponse>,
) => {
if (req.method === 'POST') {
const { username, password } = req.body;
@ -19,7 +35,7 @@ export default async (req, res) => {
return badRequest(res);
}
const user = await getUser({ username });
const user = await getUser({ username }, true);
if (user && checkPassword(password, user.password)) {
if (redis.enabled) {

View file

@ -2,8 +2,9 @@ import { methodNotAllowed, ok } from 'next-basics';
import { useAuth } from 'lib/middleware';
import redis from 'lib/redis';
import { getAuthToken } from 'lib/auth';
import { NextApiRequest, NextApiResponse } from 'next';
export default async (req, res) => {
export default async (req: NextApiRequest, res: NextApiResponse) => {
await useAuth(req, res);
if (req.method === 'POST') {

View file

@ -1,8 +0,0 @@
import { useAuth } from 'lib/middleware';
import { ok } from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
return ok(res, req.auth);
};

10
pages/api/auth/verify.ts Normal file
View file

@ -0,0 +1,10 @@
import { NextApiRequestAuth } from 'interface/api/nextApi';
import { useAuth } from 'lib/middleware';
import { NextApiResponse } from 'next';
import { ok } from 'next-basics';
export default async (req: NextApiRequestAuth, res: NextApiResponse) => {
await useAuth(req, res);
return ok(res, req.auth);
};