update login

This commit is contained in:
tengge 2020-05-07 20:50:38 +08:00
parent 6f4acd9f32
commit bba4e4c60e
3 changed files with 49 additions and 39 deletions

View File

@ -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!",
})
}

View File

@ -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{})

View File

@ -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!",
})
}