1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| func (l *LoginLogic) Login(req *types.LoginReq) (resp *types.LoginReply, err error) { // todo: add your logic here and delete this line
if len(strings.TrimSpace(req.Username)) == 0 || len(strings.TrimSpace(req.Password)) == 0 { // return nil, errors.New("参数错误") return nil, errorx.NewDefaultError("参数错误")
}
userInfo, err := l.svcCtx.UserModel.FindOneByUsername(l.ctx, req.Username) fmt.Println("userInfo=", userInfo, "error:", err) switch err { case nil: case model.ErrNotFound: // return nil, errors.New("用户名不存在") return nil, errorx.NewDefaultError("用户名不存在")
default: return nil, err } fmt.Println("pwd:", userInfo.Password.String) fmt.Println("pwd:", req.Password)
if userInfo.Password.String != req.Password { // return nil, errors.New("用户密码不正确") return nil, errorx.NewDefaultError("用户密码不正确")
}
// ---jwt-start---
now := time.Now().Unix() accessExpire := l.svcCtx.Config.Auth.AccessExpire jwtToken, err := l.getJwtToken(l.svcCtx.Config.Auth.AccessSecret, now, l.svcCtx.Config.Auth.AccessExpire, userInfo.Id) if err != nil { return nil, err } // ---jwt-end---
// 登录成功返回数据 return &types.LoginReply{ Id: userInfo.Id, Username: userInfo.Username.String, AccessToken: jwtToken, AccessExpire: now + accessExpire, RefreshAfter: now + accessExpire/2, }, nil }
|