package service import ( "resource-server/common" "resource-server/dto" "resource-server/models" "time" ) func Login(username string, password string) (*dto.UserInfoResp, error) { var user models.User err := models.DB.Model(&models.User{}).First(&user, "name = ?", username).Error if err != nil { return nil, err } if ok := user.CompareHashAndPassword([]byte(password)); !ok { return nil, common.InvalidUsernameOrPasswd } user.LastLoginTime = time.Now() err = models.DB.Save(&user).Error if err != nil { return nil, err } token, expire, err := common.NewToken(user.ID, user.Name) if err != nil { return nil, err } return &dto.UserInfoResp{ Token: token, Expire: expire, Uid: user.ID, Name: user.Name, Avatar: user.Avatar, }, nil }