From bba4e4c60e2fc9dc2fe842a396cb1eb0b7a1581e Mon Sep 17 00:00:00 2001 From: tengge <930372551@qq.com> Date: Thu, 7 May 2020 20:50:38 +0800 Subject: [PATCH] update login --- server/server/system/login/handle_login.go | 38 +++-------------- .../server/system/login/handle_login_test.go | 8 +--- server/server/system/login/handle_logout.go | 42 +++++++++++++++++++ 3 files changed, 49 insertions(+), 39 deletions(-) create mode 100644 server/server/system/login/handle_logout.go diff --git a/server/server/system/login/handle_login.go b/server/server/system/login/handle_login.go index dbb29b2a..fdb04591 100644 --- a/server/server/system/login/handle_login.go +++ b/server/server/system/login/handle_login.go @@ -20,17 +20,11 @@ import ( ) func init() { - login := Login{} - server.Mux.UsingContext().Handle(http.MethodPost, "/api/Login/Login", login.Login) - server.Mux.UsingContext().Handle(http.MethodPost, "/api/Login/Logout", login.Logout) + server.Mux.UsingContext().Handle(http.MethodPost, "/api/Login/Login", Login) } -// Login 登录控制器 -type Login struct { -} - -// Login 登录 -func (Login) Login(w http.ResponseWriter, r *http.Request) { +// Login log in the system. +func Login(w http.ResponseWriter, r *http.Request) { r.ParseForm() username := strings.TrimSpace(r.FormValue("Username")) password := strings.TrimSpace(r.FormValue("Password")) @@ -51,7 +45,7 @@ func (Login) Login(w http.ResponseWriter, r *http.Request) { return } - // 获取Salt + // get salt db, err := server.Mongo() if err != nil { helper.WriteJSON(w, server.Result{ @@ -77,7 +71,7 @@ func (Login) Login(w http.ResponseWriter, r *http.Request) { salt := user["Salt"].(string) - // 验证账号密码 + // verity password filter1 := bson.M{ "Password": helper.MD5(password + salt), } @@ -117,25 +111,3 @@ func (Login) Login(w http.ResponseWriter, r *http.Request) { }, }) } - -// Logout 注销 -func (Login) Logout(w http.ResponseWriter, r *http.Request) { - cookie, err := r.Cookie("UserID") - if err != nil { - helper.WriteJSON(w, server.Result{ - Code: 300, - Msg: err.Error(), - }) - return - } - cookie.Expires = time.Now().AddDate(0, 0, -1) - cookie.HttpOnly = true - cookie.Path = "/" - cookie.SameSite = http.SameSiteDefaultMode - http.SetCookie(w, cookie) - - helper.WriteJSON(w, server.Result{ - Code: 200, - Msg: "Logout Successfully!", - }) -} diff --git a/server/server/system/login/handle_login_test.go b/server/server/system/login/handle_login_test.go index 629bfe19..f895b179 100644 --- a/server/server/system/login/handle_login_test.go +++ b/server/server/system/login/handle_login_test.go @@ -21,9 +21,7 @@ func TestLogin(t *testing.T) { server.Create("../../config.toml") server.Config.Authority.Enabled = true - login := Login{} - - ts := httptest.NewServer(http.HandlerFunc(login.Login)) + ts := httptest.NewServer(http.HandlerFunc(Login)) defer ts.Close() res, err := http.PostForm(ts.URL, url.Values{ @@ -49,9 +47,7 @@ func TestLogout(t *testing.T) { server.Create("../../config.toml") server.Config.Authority.Enabled = true - login := Login{} - - ts := httptest.NewServer(http.HandlerFunc(login.Logout)) + ts := httptest.NewServer(http.HandlerFunc(Logout)) defer ts.Close() res, err := http.PostForm(ts.URL, url.Values{}) diff --git a/server/server/system/login/handle_logout.go b/server/server/system/login/handle_logout.go new file mode 100644 index 00000000..dd9fefc1 --- /dev/null +++ b/server/server/system/login/handle_logout.go @@ -0,0 +1,42 @@ +// Copyright 2017-2020 The ShadowEditor Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// +// For more information, please visit: https://github.com/tengge1/ShadowEditor +// You can also visit: https://gitee.com/tengge1/ShadowEditor + +package login + +import ( + "net/http" + "time" + + "github.com/tengge1/shadoweditor/helper" + "github.com/tengge1/shadoweditor/server" +) + +func init() { + server.Mux.UsingContext().Handle(http.MethodPost, "/api/Login/Logout", Logout) +} + +// Logout log out the system. +func Logout(w http.ResponseWriter, r *http.Request) { + cookie, err := r.Cookie("UserID") + if err != nil { + helper.WriteJSON(w, server.Result{ + Code: 300, + Msg: err.Error(), + }) + return + } + cookie.Expires = time.Now().AddDate(0, 0, -1) + cookie.HttpOnly = true + cookie.Path = "/" + cookie.SameSite = http.SameSiteDefaultMode + http.SetCookie(w, cookie) + + helper.WriteJSON(w, server.Result{ + Code: 200, + Msg: "Logout Successfully!", + }) +}