rbac/services/auth.go
zhangkun9038@dingtalk.com 6669be1923 up
2025-02-16 17:55:27 +08:00

26 lines
609 B
Go

package services
import (
"errors"
"gitea.zjmud.xyz/phyer/rbac/models"
"gitea.zjmud.xyz/phyer/rbac/repositories"
"gitea.zjmud.xyz/phyer/rbac/utils"
"golang.org/x/crypto/bcrypt"
)
func Login(username, password string) (string, error) {
user, err := repositories.GetUserByUsername(username)
if err != nil {
return "", errors.New("invalid credentials")
}
err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password))
if err != nil {
return "", errors.New("invalid credentials")
}
token, err := utils.GenerateJWT(user.ID)
if err != nil {
return "", err
}
return token, nil
}