修改配置文件的错误,增加退出登录api,登录设置顶顶domain

This commit is contained in:
sysnix 2023-11-23 05:21:34 +08:00
parent 833850b5e5
commit 4aabb57ff9
5 changed files with 19 additions and 10 deletions

View File

@ -19,7 +19,7 @@ type bootstrap struct {
// =========================================================
type iris struct {
Session session `yaml:"iris"`
Session session `yaml:"session"`
}
type session struct {

View File

@ -3,7 +3,7 @@ iris:
session:
address: localhost:6379
db: 0
prefix: iris:session
prefix: "iris:session:"
expires: 10
database:
sqlite:
@ -11,4 +11,4 @@ database:
filePath: ./db_file.db
redis:
addr: localhost:6379
db: 1
db: 0

View File

@ -1,13 +1,12 @@
package adm_controller
import (
"Blog/internal/model"
"Blog/internal/model/result"
"Blog/internal/utils"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/mvc"
"github.com/kataras/iris/v12/sessions"
"github.com/mitchellh/mapstructure"
"github.com/sirupsen/logrus"
)
@ -21,10 +20,8 @@ type AdminController struct {
func (ctrl *AdminController) Get() {
session := ctrl.Session
var userMap map[string]any
if err := session.Decode("user", &userMap); err == nil {
var user model.SysUser
mapstructure.Decode(userMap, &user)
user := utils.SessionUtil.GetUser(session)
if user.Id != "" {
logrus.Info("[", user.Username, "]进入后台管理")
}
ctrl.Ctx.View("/admin/index.html")

View File

@ -129,7 +129,7 @@ func (ctrl *LoginController) Post() {
session.Man.Destroy(ctrl.Ctx)
newSession := session.Man.Start(ctrl.Ctx)
newSession.Set("user", user)
ctrl.Ctx.SetCookieKV("session_id_cookie", newSession.ID())
ctrl.Ctx.SetCookieKV("session_id_cookie", newSession.ID(), iris.CookieAllowSubdomains("www"))
xFrowardedFor := ctrl.Ctx.GetHeader("X-Forwarded-For")
logrus.Info("用户:", user.Username, "登录,IP为:", xFrowardedFor)

View File

@ -5,6 +5,7 @@ import (
"Blog/internal/controller/adm_controller"
"Blog/internal/controller/cli_controller"
"Blog/internal/middleware"
"Blog/internal/utils"
"net/http"
"time"
@ -54,6 +55,17 @@ func Router() {
m.Party("/diary").Handle(new(cli_controller.DiaryController))
m.Party("/file").Handle(new(cli_controller.FileController))
m.Party("/admin/login").Handle(new(adm_controller.LoginController))
m.Router.Get("/logout", func(ctx iris.Context) {
session := sessions.Get(ctx)
user := utils.SessionUtil.GetUser(session)
if user.Id != "" {
logrus.Info("[", user.Username, "]退出登录,清除Session")
session.Man.Destroy(ctx)
ctx.Redirect("")
return
}
logrus.Error("当前用户没有登录状态,无法退出登录")
})
})