Browse Source

fixed bug

dev
npmrun 2 years ago
parent
commit
34525b03af
  1. 24
      public/js/page/login.js
  2. 7
      route.txt
  3. 31
      source/route/views/index.ts
  4. 2
      source/route/views/index/index.ts
  5. 6
      template/helper/ui.pug
  6. 1
      template/views/login.pug

24
public/js/page/login.js

@ -1,11 +1,17 @@
const signUpButton = document.getElementById('signUp'); // const signUpButton = document.getElementById('signUp');
const signInButton = document.getElementById('signIn'); // const signInButton = document.getElementById('signIn');
const container = document.getElementById('container'); // const container = document.getElementById('container');
signUpButton.addEventListener('click', () => { // signUpButton.addEventListener('click', () => {
container.classList.add("right-panel-active"); // container.classList.add("right-panel-active");
}); // });
signInButton.addEventListener('click', () => { // signInButton.addEventListener('click', () => {
container.classList.remove("right-panel-active"); // container.classList.remove("right-panel-active");
}); // });
const referer = document.getElementById("referrer")
if (referer) {
let url = new URLSearchParams(window.location.search).get("next")
referer.value = url ? url : ""
}
console.log(referer);

7
route.txt

@ -12,10 +12,11 @@ D:\1XYX\demo\hapi-demo\source\route\views对应路径:
不需权限 : GET /css 不需权限 : GET /css
不需权限(提供无需验证): GET / 不需权限(提供无需验证): GET /
不需权限(提供无需验证): GET /about 不需权限(提供无需验证): GET /about
需权限 : GET /docs/{path*} 权限 : GET /docs/{path*}
不需权限 : GET /{path*} 不需权限 : GET /{path*}
不需权限(提供无需验证): GET /login 不需权限(提供无需验证): GET /login
不需权限 : POST /login 不需权限 : POST /login
需要权限 : GET /login/logout 需要权限 : GET /logout
不需权限 : POST /login/register 不需权限(提供无需验证): GET /register
不需权限 : POST /register
不需权限 : GET /nav 不需权限 : GET /nav

31
source/route/views/login.ts → source/route/views/index.ts

@ -7,10 +7,10 @@ import * as bcrypt from "bcrypt";
* *
*/ */
export default class { export default class {
@route("/index") @route("/login")
@auth("try") @auth("try")
@method("GET") @method("GET")
async loginView(request: Req, h: Res): ReturnValue { async login_GET(request: Req, h: Res): ReturnValue {
if (request.auth.isAuthenticated) { if (request.auth.isAuthenticated) {
request.yar.flash('error', '您已经登陆'); request.yar.flash('error', '您已经登陆');
return h.redirect("/") return h.redirect("/")
@ -21,9 +21,9 @@ export default class {
} }
@method("POST") @method("POST")
@route("/index") @route("/login")
async loginRes(request: Req, h: Res): ReturnValue { async login_POST(request: Req, h: Res): ReturnValue {
const { username, password } = request.payload as any; const { username, password, referrer } = request.payload as any;
if(!username || !password ){ if(!username || !password ){
request.yar.flash('error', 'username or password can not be empty.'); request.yar.flash('error', 'username or password can not be empty.');
return h.redirect("/login"); return h.redirect("/login");
@ -37,22 +37,31 @@ export default class {
} }
request.cookieAuth.set({ id: account.id }); request.cookieAuth.set({ id: account.id });
return h.redirect("/"); return h.redirect(referrer ? referrer : "/");
} }
@method("GET") @method("GET")
@auth() @auth()
@route("/logout")
async logout(request: Req, h: Res): ReturnValue { async logout(request: Req, h: Res): ReturnValue {
request.yar.flash('error', '用户已退出'); request.yar.flash('error', '用户已退出');
console.log(111,request.auth.artifacts);
request.cookieAuth.clear(); request.cookieAuth.clear();
return h.redirect("/"); return h.redirect('/');
} }
@method("POST")
@route("/register") @route("/register")
@auth("try")
@method("GET")
async registerView(request: Req, h: Res): ReturnValue {
if (request.auth.isAuthenticated) {
request.yar.flash('error', '您已经登陆');
return h.redirect("/")
} else {
logger.debug("未登录");
}
return h.view("views/login.pug");
}
@method("POST")
async register(request: Req, h: Res): ReturnValue { async register(request: Req, h: Res): ReturnValue {
let { username, password, email } = request.payload as any; let { username, password, email } = request.payload as any;
if (!username) username = email; if (!username) username = email;

2
source/route/views/index/index.ts

@ -51,8 +51,8 @@ export default class Index {
}); });
} }
// @auth()
@route("/docs/{path*}") @route("/docs/{path*}")
@auth()
async docs(req: Req, h: Res): ReturnValue { async docs(req: Req, h: Res): ReturnValue {
// const {id} = req.auth.credentials // const {id} = req.auth.credentials
// try { // try {

6
template/helper/ui.pug

@ -14,10 +14,12 @@ mixin header()
.navbar-text .navbar-text
if !isLogin if !isLogin
a(href="/login") a(href="/login")
.btn.btn-sm.btn-outline-secondary 登陆/注册 .btn.btn-sm.btn-outline-secondary 登陆
a(href="/login")
.btn.btn-sm.btn-outline-secondary 注册
else else
div #{user.username} div #{user.username}
a(href="/login/logout") a(href="/logout")
.btn.btn-sm.btn-outline-secondary 退出 .btn.btn-sm.btn-outline-secondary 退出
//- form(action="/login/logout", method="post") //- form(action="/login/logout", method="post")
//- include @/helper/form_security.pug //- include @/helper/form_security.pug

1
template/views/login.pug

@ -11,6 +11,7 @@ block content
.login .login
h1 登录 h1 登录
form(action='/login' method='post') form(action='/login' method='post')
input(id="referrer" type="text" name="referrer" class="form-control" style="display:none;")
input(type='text', name='username', placeholder='用户名', required) input(type='text', name='username', placeholder='用户名', required)
input(type='password', name='password', placeholder='密码', required) input(type='password', name='password', placeholder='密码', required)
include @/helper/form_security.pug include @/helper/form_security.pug

Loading…
Cancel
Save