| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package auth
- import (
- "context"
- "perms-system-server/internal/middleware"
- "perms-system-server/internal/response"
- "perms-system-server/internal/svc"
- "perms-system-server/internal/types"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type UserInfoLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserInfoLogic {
- return &UserInfoLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- // UserInfo 获取当前登录用户信息。返回当前 JWT 令牌对应用户的完整个人信息、成员类型和权限列表,用于前端初始化用户状态。
- func (l *UserInfoLogic) UserInfo() (resp *types.UserInfo, err error) {
- ud := middleware.GetUserDetails(l.ctx)
- if ud == nil {
- return nil, response.ErrUnauthorized("未登录")
- }
- return &types.UserInfo{
- UserId: ud.UserId,
- Username: ud.Username,
- Nickname: ud.Nickname,
- Avatar: ud.Avatar,
- Email: ud.Email,
- Phone: ud.Phone,
- IsSuperAdmin: ud.IsSuperAdminRaw,
- MustChangePassword: ud.MustChangePwdRaw,
- MemberType: ud.MemberType,
- Perms: ud.Perms,
- }, nil
- }
|