import { auth, config, method, route, swagger, validate, } from "@noderun/hapi-router"; import { Req, Res, ReturnValue } from "#/global"; import UploadFunc from "../demo/_upload"; import Joi from "joi"; import User from "@/model/User"; import * as bcrypt from "bcrypt"; export default class Index{ @auth() @config({ auth: { mode: "try", }, }) async index(request: Req, h: Res): ReturnValue { console.log(request.auth.isAuthenticated); // console.log(request.auth); // if (request.isAuthenticated) { // // 登录了 // } else { // // 未登录 // } return h.view("views/index.pug"); } @method("GET") @route("/login") loginView(request, h) { return h.view("views/login.ejs"); } @method("POST") @auth(false) @route("/login") async login(request: Req, h: Res): ReturnValue { const { username, password } = request.payload as any; const account = await User.findOne({ where: { username: username } }); if (!account || !(await bcrypt.compare(password, account.password))) { return h.redirect("/login"); } request.cookieAuth.set({ id: account.id }); return h.redirect("/"); } @route("/about") @auth(false) async about(request, h) { console.log(request.auth); console.log(1); try { const User = request.getModel("User") console.log(await User.findOne({ where: { username: "xieyaxin" } })); } catch (error) { console.log(error); } console.log(2); return h.view("views/about.ejs"); } @route("/{path*}") async 404(req, h) { // 404页面 return h.view("404.pug"); } }