Pre graphql
This commit is contained in:
@@ -35,9 +35,9 @@ func NewMgr(db *db.DBManager, c *config.Config) *AuthManager {
|
||||
|
||||
func (auth *AuthManager) AuthenticateUser(creds models.APICredentials) (bool, models.User) {
|
||||
// By Username
|
||||
foundUser, err := auth.DB.User(models.User{Username: creds.User})
|
||||
foundUser, err := auth.DB.User(&models.User{Username: creds.User})
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
foundUser, err = auth.DB.User(models.User{Email: creds.User})
|
||||
foundUser, err = auth.DB.User(&models.User{Email: creds.User})
|
||||
}
|
||||
|
||||
// Error Checking
|
||||
@@ -67,22 +67,22 @@ func (auth *AuthManager) getRole(user models.User) string {
|
||||
return "User"
|
||||
}
|
||||
|
||||
func (auth *AuthManager) ValidateJWTRefreshToken(refreshJWT string) (jwt.Token, bool) {
|
||||
func (auth *AuthManager) ValidateJWTRefreshToken(refreshJWT string) (jwt.Token, error) {
|
||||
byteRefreshJWT := []byte(refreshJWT)
|
||||
|
||||
// Acquire Relevant Device
|
||||
unverifiedToken, err := jwt.ParseBytes(byteRefreshJWT)
|
||||
did, ok := unverifiedToken.Get("did")
|
||||
if !ok {
|
||||
return nil, false
|
||||
return nil, errors.New("did does not exist")
|
||||
}
|
||||
deviceID, err := uuid.Parse(fmt.Sprintf("%v", did))
|
||||
if err != nil {
|
||||
return nil, false
|
||||
return nil, errors.New("did does not parse")
|
||||
}
|
||||
device, err := auth.DB.Device(models.Device{Base: models.Base{UUID: deviceID}})
|
||||
device, err := auth.DB.Device(&models.Device{Base: models.Base{UUID: deviceID}})
|
||||
if err != nil {
|
||||
return nil, false
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Verify & Validate Token
|
||||
@@ -92,22 +92,23 @@ func (auth *AuthManager) ValidateJWTRefreshToken(refreshJWT string) (jwt.Token,
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Println("failed to parse payload: ", err)
|
||||
return nil, false
|
||||
return nil, err
|
||||
}
|
||||
return verifiedToken, true
|
||||
return verifiedToken, nil
|
||||
}
|
||||
|
||||
func (auth *AuthManager) ValidateJWTAccessToken(accessJWT string) (jwt.Token, bool) {
|
||||
func (auth *AuthManager) ValidateJWTAccessToken(accessJWT string) (jwt.Token, error) {
|
||||
byteAccessJWT := []byte(accessJWT)
|
||||
verifiedToken, err := jwt.ParseBytes(byteAccessJWT,
|
||||
jwt.WithValidate(true),
|
||||
jwt.WithVerify(jwa.HS256, []byte(auth.Config.JWTSecret)),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println("failed to parse payload: ", err)
|
||||
return nil, false
|
||||
return nil, err
|
||||
}
|
||||
return verifiedToken, true
|
||||
|
||||
return verifiedToken, nil
|
||||
}
|
||||
|
||||
func (auth *AuthManager) CreateJWTRefreshToken(user models.User, device models.Device) (string, error) {
|
||||
|
||||
Reference in New Issue
Block a user