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

Method CheckLogin

middleware/login.go:22–56  ·  view source on GitHub ↗

CheckLogin 校验JWT

()

Source from the content-addressed store, hash-verified

20
21// CheckLogin 校验JWT
22func (m *JWTMiddleware) CheckLogin() gin.HandlerFunc {
23 return func(ctx *gin.Context) {
24 tokenStr := m.ExtractToken(ctx)
25 if tokenStr == "" {
26 return
27 }
28
29 var uc ijwt.UserClaims
30 token, err := jwt.ParseWithClaims(tokenStr, &uc, func(token *jwt.Token) (interface{}, error) {
31 return []byte(viper.GetString("jwt.auth_key")), nil
32 })
33 if err != nil {
34 apiresponse.UnauthorizedErrorWithDetails(ctx, nil, "登录态无效")
35 ctx.Abort()
36 return
37 }
38 if token == nil || !token.Valid {
39 apiresponse.UnauthorizedErrorWithDetails(ctx, nil, "登录态无效")
40 ctx.Abort()
41 return
42 }
43 if uc.UserAgent == "" {
44 apiresponse.UnauthorizedErrorWithDetails(ctx, nil, "登录态无效")
45 ctx.Abort()
46 return
47 }
48 err = m.CheckSession(ctx, uc.Ssid)
49 if err != nil {
50 apiresponse.UnauthorizedErrorWithDetails(ctx, nil, "登录态已失效")
51 ctx.Abort()
52 return
53 }
54 ctx.Set("user", uc)
55 }
56}

Callers 1

InitMiddlewaresFunction · 0.80

Calls 4

ExtractTokenMethod · 0.65
CheckSessionMethod · 0.65
SetMethod · 0.65

Tested by

no test coverage detected