1234567891011121314151617181920212223242526272829303132333435 |
- 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
- }
|