mirror of
				https://github.com/steveiliop56/tinyauth.git
				synced 2025-10-31 06:05:43 +00:00 
			
		
		
		
	Feat/totp (#45)
* wip * feat: finalize totp gen code * refactor: split login screen and forms * feat: add totp logic and ui * refactor: make totp pending expiry time fixed * refactor: skip all checks when disable continue is enabled * fix: fix cli not exiting on invalid input
This commit is contained in:
		| @@ -36,15 +36,29 @@ func (hooks *Hooks) UseUserContext(c *gin.Context) types.UserContext { | ||||
| 		if user != nil && hooks.Auth.CheckPassword(*user, basic.Password) { | ||||
| 			// Return user context since we are logged in with basic auth | ||||
| 			return types.UserContext{ | ||||
| 				Username:   basic.Username, | ||||
| 				IsLoggedIn: true, | ||||
| 				OAuth:      false, | ||||
| 				Provider:   "basic", | ||||
| 				Username:    basic.Username, | ||||
| 				IsLoggedIn:  true, | ||||
| 				OAuth:       false, | ||||
| 				Provider:    "basic", | ||||
| 				TotpPending: false, | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	// Check if session cookie has totp pending | ||||
| 	if cookie.TotpPending { | ||||
| 		log.Debug().Msg("Totp pending") | ||||
| 		// Return empty context since we are pending totp | ||||
| 		return types.UserContext{ | ||||
| 			Username:    cookie.Username, | ||||
| 			IsLoggedIn:  false, | ||||
| 			OAuth:       false, | ||||
| 			Provider:    cookie.Provider, | ||||
| 			TotpPending: true, | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Check if session cookie is username/password auth | ||||
| 	if cookie.Provider == "username" { | ||||
| 		log.Debug().Msg("Provider is username") | ||||
| @@ -55,10 +69,11 @@ func (hooks *Hooks) UseUserContext(c *gin.Context) types.UserContext { | ||||
|  | ||||
| 			// It exists so we are logged in | ||||
| 			return types.UserContext{ | ||||
| 				Username:   cookie.Username, | ||||
| 				IsLoggedIn: true, | ||||
| 				OAuth:      false, | ||||
| 				Provider:   "username", | ||||
| 				Username:    cookie.Username, | ||||
| 				IsLoggedIn:  true, | ||||
| 				OAuth:       false, | ||||
| 				Provider:    "username", | ||||
| 				TotpPending: false, | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @@ -81,10 +96,11 @@ func (hooks *Hooks) UseUserContext(c *gin.Context) types.UserContext { | ||||
|  | ||||
| 			// Return empty context | ||||
| 			return types.UserContext{ | ||||
| 				Username:   "", | ||||
| 				IsLoggedIn: false, | ||||
| 				OAuth:      false, | ||||
| 				Provider:   "", | ||||
| 				Username:    "", | ||||
| 				IsLoggedIn:  false, | ||||
| 				OAuth:       false, | ||||
| 				Provider:    "", | ||||
| 				TotpPending: false, | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| @@ -92,18 +108,20 @@ func (hooks *Hooks) UseUserContext(c *gin.Context) types.UserContext { | ||||
|  | ||||
| 		// Return user context since we are logged in with oauth | ||||
| 		return types.UserContext{ | ||||
| 			Username:   cookie.Username, | ||||
| 			IsLoggedIn: true, | ||||
| 			OAuth:      true, | ||||
| 			Provider:   cookie.Provider, | ||||
| 			Username:    cookie.Username, | ||||
| 			IsLoggedIn:  true, | ||||
| 			OAuth:       true, | ||||
| 			Provider:    cookie.Provider, | ||||
| 			TotpPending: false, | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Neither basic auth or oauth is set so we return an empty context | ||||
| 	return types.UserContext{ | ||||
| 		Username:   "", | ||||
| 		IsLoggedIn: false, | ||||
| 		OAuth:      false, | ||||
| 		Provider:   "", | ||||
| 		Username:    "", | ||||
| 		IsLoggedIn:  false, | ||||
| 		OAuth:       false, | ||||
| 		Provider:    "", | ||||
| 		TotpPending: false, | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Stavros
					Stavros