用户登陆.md 1.7 KB

用户登录

概要

实现用户登录功能

编辑error.go文件

$  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则代表登录成功,并且返回了用户信息

curl-login.png