mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
Netmaker Desktop Session Duration (#3543)
* feat(go): allow different session durations for client apps; * feat(go): assume call is from netdesk app if header absent; * feat(go): allow header; * feat(go): set client jwt validity duration on migration.
This commit is contained in:
@@ -24,6 +24,12 @@ const (
|
||||
auth_key = "netmaker_auth"
|
||||
)
|
||||
|
||||
const (
|
||||
DashboardApp = "dashboard"
|
||||
NetclientApp = "netclient"
|
||||
NetmakerDesktopApp = "netmaker-desktop"
|
||||
)
|
||||
|
||||
var (
|
||||
superUser = models.User{}
|
||||
)
|
||||
@@ -178,7 +184,8 @@ func CreateUser(user *models.User) error {
|
||||
user.AuthType = models.OAuth
|
||||
}
|
||||
AddGlobalNetRolesToAdmins(user)
|
||||
_, err = CreateUserJWT(user.UserName, user.PlatformRoleID)
|
||||
// create user will always be called either from API or Dashboard.
|
||||
_, err = CreateUserJWT(user.UserName, user.PlatformRoleID, DashboardApp)
|
||||
if err != nil {
|
||||
logger.Log(0, "failed to generate token", err.Error())
|
||||
return err
|
||||
@@ -212,7 +219,7 @@ func CreateSuperAdmin(u *models.User) error {
|
||||
}
|
||||
|
||||
// VerifyAuthRequest - verifies an auth request
|
||||
func VerifyAuthRequest(authRequest models.UserAuthParams) (string, error) {
|
||||
func VerifyAuthRequest(authRequest models.UserAuthParams, appName string) (string, error) {
|
||||
var result models.User
|
||||
if authRequest.UserName == "" {
|
||||
return "", errors.New("username can't be empty")
|
||||
@@ -245,7 +252,7 @@ func VerifyAuthRequest(authRequest models.UserAuthParams) (string, error) {
|
||||
return tokenString, nil
|
||||
} else {
|
||||
// Create a new JWT for the node
|
||||
tokenString, err := CreateUserJWT(authRequest.UserName, result.PlatformRoleID)
|
||||
tokenString, err := CreateUserJWT(authRequest.UserName, result.PlatformRoleID, appName)
|
||||
if err != nil {
|
||||
slog.Error("error creating jwt", "error", err)
|
||||
return "", err
|
||||
@@ -483,8 +490,9 @@ func GetState(state string) (*models.SsoState, error) {
|
||||
}
|
||||
|
||||
// SetState - sets a state with new expiration
|
||||
func SetState(state string) error {
|
||||
func SetState(appName, state string) error {
|
||||
s := models.SsoState{
|
||||
AppName: appName,
|
||||
Value: state,
|
||||
Expiration: time.Now().Add(models.DefaultExpDuration),
|
||||
}
|
||||
|
Reference in New Issue
Block a user