41 lines
844 B
Go
41 lines
844 B
Go
package handler
|
||
|
||
import (
|
||
"net/http"
|
||
|
||
"fashionapi/internal/middleware"
|
||
"fashionapi/internal/pkg/response"
|
||
"fashionapi/internal/service"
|
||
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
// AuthHandler 账号体系接口(JWT 无状态)。
|
||
type AuthHandler struct {
|
||
auth service.AuthService
|
||
}
|
||
|
||
// NewAuthHandler 创建账号 handler。
|
||
func NewAuthHandler(auth service.AuthService) *AuthHandler {
|
||
return &AuthHandler{auth: auth}
|
||
}
|
||
|
||
// Me 当前登录用户,需 Authorization: Bearer <token>。
|
||
//
|
||
// GET /api/auth/me
|
||
// 成功:200 { user }
|
||
func (h *AuthHandler) Me(c *gin.Context) {
|
||
userID, ok := middleware.UserIDFrom(c)
|
||
if !ok {
|
||
response.Error(c, http.StatusUnauthorized, "unauthorized")
|
||
return
|
||
}
|
||
|
||
user, err := h.auth.Me(c.Request.Context(), userID)
|
||
if err != nil {
|
||
fail(c, err)
|
||
return
|
||
}
|
||
c.JSON(http.StatusOK, gin.H{"user": user})
|
||
}
|