package service import "time" type authHandler struct { } var ( accessToken string accessTokenExpire time.Time ) func (*authHandler) login(wait *WaitConn, req struct { Username string `json:"username"` Password string `json:"password"` }) { logger.Infof("%s %v", wait.GetRoute(), req) defer func() { wait.Done() }() if req.Username != config.Username || req.Password != config.Password { wait.SetResult("用户或密码错误", nil) return } now := time.Now() if accessToken == "" || now.After(accessTokenExpire) { accessToken = GenToken(20) accessTokenExpire = now.Add(time.Hour * 8) } wait.SetResult("", struct { Token string `json:"token"` }{Token: accessToken}) }