MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / Login

Method Login

internal/api/user.go:87–116  ·  view source on GitHub ↗

Login 用户登录

(ctx *gin.Context)

Source from the content-addressed store, hash-verified

85
86// Login 用户登录
87func (uh *UserHandler) Login(ctx *gin.Context) {
88 var req req.LoginReq
89 if err := ctx.ShouldBindJSON(&req); err != nil {
90 apiresponse.ErrorWithMessage(ctx, "无效的请求参数")
91 return
92 }
93
94 // 登录验证
95 du, err := uh.svc.Login(ctx, req.Username, req.Password)
96 if err != nil {
97 if errors.Is(err, service.ErrInvalidUserOrPassword) {
98 apiresponse.ErrorWithMessage(ctx, UserLoginFailure)
99 return
100 }
101 apiresponse.ErrorWithMessage(ctx, UserLoginFailure)
102 return
103 }
104
105 // 生成令牌
106 jwtToken, refreshToken, err := uh.ijwt.SetLoginToken(ctx, du.ID)
107 if err != nil {
108 apiresponse.ErrorWithMessage(ctx, UserLoginFailure)
109 return
110 }
111
112 apiresponse.SuccessWithData(ctx, map[string]string{
113 "accessToken": jwtToken,
114 "refreshToken": refreshToken,
115 })
116}
117
118// Logout 用户登出
119func (uh *UserHandler) Logout(ctx *gin.Context) {

Callers

nothing calls this directly

Calls 4

ErrorWithMessageFunction · 0.92
SuccessWithDataFunction · 0.92
LoginMethod · 0.65
SetLoginTokenMethod · 0.65

Tested by

no test coverage detected