This commit is contained in:
2023-05-14 07:00:24 +08:00
parent 2423213e9a
commit ee3b60eccc
18 changed files with 273 additions and 1221 deletions

View File

@@ -2,6 +2,7 @@ package routers
import (
"fmt"
"main/configs"
"main/models"
"main/utils"
"net/http"
@@ -22,16 +23,23 @@ func AccountGet(w http.ResponseWriter, r *http.Request) {
cookie, err := r.Cookie("session_id")
if err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte("401 - 未登錄"))
return
}
// 獲取會話
session := models.Session{ID: cookie.Value}
session.Get()
if err := configs.ORMDB().Take(&session).Error; err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte("401 - 會話已過期"))
return
}
// 獲取用戶
user := models.User{ID: session.UserID}
user.Get()
configs.ORMDB().Model(&user).Select("id, name, email, created_at, updated_at").Find(&user)
account.ID = user.ID
account.Name = user.Name
@@ -43,25 +51,3 @@ func AccountGet(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(utils.ToJSON(account))
}
// 獲取當前賬戶, 並將其傳入回調函數
func get_account(w http.ResponseWriter, r *http.Request, callback func(*models.User)) (err error) {
// 獲取Cookie
cookie, err := r.Cookie("session_id")
if err != nil {
fmt.Println(err)
return nil
}
// 獲取會話
session := models.Session{ID: cookie.Value}
session.Get()
// 獲取用戶
user := models.User{ID: session.UserID}
user.Get()
callback(&user)
return nil
}