You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
710 B
39 lines
710 B
package middleware
|
|
|
|
import (
|
|
"cloudreve/models"
|
|
"cloudreve/pkg/serializer"
|
|
"github.com/gin-contrib/sessions"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// CurrentUser 获取登录用户
|
|
func CurrentUser() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
session := sessions.Default(c)
|
|
uid := session.Get("user_id")
|
|
if uid != nil {
|
|
user, err := model.GetUserByID(uid)
|
|
if err == nil {
|
|
c.Set("user", &user)
|
|
}
|
|
}
|
|
c.Next()
|
|
}
|
|
}
|
|
|
|
// AuthRequired 需要登录
|
|
func AuthRequired() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
if user, _ := c.Get("user"); user != nil {
|
|
if _, ok := user.(*model.User); ok {
|
|
c.Next()
|
|
return
|
|
}
|
|
}
|
|
|
|
c.JSON(200, serializer.CheckLogin())
|
|
c.Abort()
|
|
}
|
|
}
|