实现用户登录功能
$ vi book/user/api/internal/logic/error.go
增加一些错误类型
errorUsernameUnRegister = shared.NewDefaultError("用户未注册")
errorIncorrectPassword = shared.NewDefaultError("用户密码错误")
$ vi book/user/api/internal/logic/loginlogic.go
增加登录逻辑
向Login方法中填充注册逻辑
// 忽略逻辑校验
userInfo, err := l.svcCtx.UserModel.FindOneByName(req.Username)
switch err {
case nil:
if userInfo.Password != req.Password {
return nil, errorIncorrectPassword
}
return &types.UserReply{
Id: userInfo.Id,
Username: userInfo.Name,
Mobile: userInfo.Mobile,
Nickname: userInfo.Nickname,
Gender: userInfo.Gender,
}, nil
case model.ErrNotFound:
return nil, errorUsernameUnRegister
default:
return nil, err
}
TODO: jwt token生成见jwt生成
$ curl -i -X POST \
http://127.0.0.1:8888/user/login \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"username":"admin",
"password":"666666"
}'
注意:windows系统curl json需要对json进行转义。
得到响应码为200
则代表登录成功,并且返回了用户信息