login-patched
Some checks failed
deploy / deploy (push) Failing after 5s

This commit is contained in:
Untone 2024-02-22 09:13:56 +03:00
parent 0f9b95cafe
commit 94917e7735
2 changed files with 74 additions and 35 deletions

View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"strings" "strings"
"time" "time"
"os"
"github.com/google/uuid" "github.com/google/uuid"
@ -19,6 +20,7 @@ import (
mailService "github.com/authorizerdev/authorizer/server/email" mailService "github.com/authorizerdev/authorizer/server/email"
"github.com/authorizerdev/authorizer/server/graph/model" "github.com/authorizerdev/authorizer/server/graph/model"
"github.com/authorizerdev/authorizer/server/memorystore" "github.com/authorizerdev/authorizer/server/memorystore"
"github.com/authorizerdev/authorizer/server/memorystore/providers/redis"
"github.com/authorizerdev/authorizer/server/refs" "github.com/authorizerdev/authorizer/server/refs"
"github.com/authorizerdev/authorizer/server/smsproviders" "github.com/authorizerdev/authorizer/server/smsproviders"
"github.com/authorizerdev/authorizer/server/token" "github.com/authorizerdev/authorizer/server/token"
@ -316,6 +318,41 @@ func LoginResolver(ctx context.Context, params model.LoginInput) (*model.AuthRes
expiresIn = 1 expiresIn = 1
} }
redisURL := os.Getenv(constants.EnvKeyRedisURL)
if redisURL != "" {
log.Info("Initializing Redis provider")
Provider, err := redis.NewRedisProvider(redisURL)
if err != nil {
log.Debug("Failed to init Redis: ", err)
}
if user.AppData == nil {
user.AppData = make(map[string]interface{})
}
follows, err := Provider.GetUserFollows(user.ID)
if err != nil {
log.Debug("Failed to get follows from Redis: ", err)
} else {
if follows != "" {
user.AppData["follows"] = follows
} else {
log.Debug("Follows data from Redis is empty")
}
}
author, err := Provider.GetUserProfile(user.ID)
if err != nil {
log.Debug("Failed to get author from Redis: ", err)
} else {
if author != "" {
user.AppData["author"] = author
} else {
log.Debug("Author data from Redis is empty")
}
}
}
res = &model.AuthResponse{ res = &model.AuthResponse{
Message: `Logged in successfully`, Message: `Logged in successfully`,
AccessToken: &authToken.AccessToken.Token, AccessToken: &authToken.AccessToken.Token,

View File

@ -4,8 +4,9 @@ import (
"context" "context"
"errors" "errors"
"fmt" "fmt"
"time"
"os" "os"
"os/user"
"time"
"github.com/google/uuid" "github.com/google/uuid"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -92,6 +93,41 @@ func SessionResolver(ctx context.Context, params *model.SessionQueryInput) (*mod
expiresIn = 1 expiresIn = 1
} }
redisURL := os.Getenv(constants.EnvKeyRedisURL)
if redisURL != "" {
log.Info("Initializing Redis provider")
Provider, err := redis.NewRedisProvider(redisURL)
if err != nil {
log.Debug("Failed to init Redis: ", err)
}
if user.AppData == nil {
user.AppData = make(map[string]interface{})
}
follows, err := Provider.GetUserFollows(user.ID)
if err != nil {
log.Debug("Failed to get follows from Redis: ", err)
} else {
if follows != "" {
user.AppData["follows"] = follows
} else {
log.Debug("Follows data from Redis is empty")
}
}
author, err := Provider.GetUserProfile(user.ID)
if err != nil {
log.Debug("Failed to get author from Redis: ", err)
} else {
if author != "" {
user.AppData["author"] = author
} else {
log.Debug("Author data from Redis is empty")
}
}
}
res = &model.AuthResponse{ res = &model.AuthResponse{
Message: `Session token refreshed`, Message: `Session token refreshed`,
AccessToken: &authToken.AccessToken.Token, AccessToken: &authToken.AccessToken.Token,
@ -104,40 +140,6 @@ func SessionResolver(ctx context.Context, params *model.SessionQueryInput) (*mod
memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeSessionToken+"_"+authToken.FingerPrint, authToken.FingerPrintHash, authToken.SessionTokenExpiresAt) memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeSessionToken+"_"+authToken.FingerPrint, authToken.FingerPrintHash, authToken.SessionTokenExpiresAt)
memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeAccessToken+"_"+authToken.FingerPrint, authToken.AccessToken.Token, authToken.AccessToken.ExpiresAt) memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeAccessToken+"_"+authToken.FingerPrint, authToken.AccessToken.Token, authToken.AccessToken.ExpiresAt)
redisURL := os.Getenv(constants.EnvKeyRedisURL)
if redisURL != "" {
log.Info("Initializing Redis provider")
Provider, err := redis.NewRedisProvider(redisURL)
if err != nil {
log.Debug("Failed to init Redis: ", err)
}
if res.User.AppData == nil {
res.User.AppData = make(map[string]interface{})
}
follows, err := Provider.GetUserFollows(userID)
if err != nil {
log.Debug("Failed to get follows from Redis: ", err)
} else {
if follows != "" {
res.User.AppData["follows"] = follows
} else {
log.Debug("Follows data from Redis is empty")
}
}
author, err := Provider.GetUserProfile(userID)
if err != nil {
log.Debug("Failed to get author from Redis: ", err)
} else {
if author != "" {
res.User.AppData["author"] = author
} else {
log.Debug("Author data from Redis is empty")
}
}
}
if authToken.RefreshToken != nil { if authToken.RefreshToken != nil {
res.RefreshToken = &authToken.RefreshToken.Token res.RefreshToken = &authToken.RefreshToken.Token