auth

package
v0.0.54-rc5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleChangePassword

func HandleChangePassword(c *gin.Context)

TODO: ratelimit? POST /api/v1/auth/change-password change the password of current user

func HandleCliLogin

func HandleCliLogin(c *gin.Context)

TODO: replace with api keys

func HandleIsSignUpOpen

func HandleIsSignUpOpen(c *gin.Context)

HandleIsSignUpOpen godoc @Summary Check if signup is open @Schemes @Description Check if signup is open @Tags Authentication @Accept json @Produce json @Success 200 {object} serializers.IsSignUpOpenSerializer @Router /api/v1/auth/is-signup-open [get]

func HandleLogin

func HandleLogin(c *gin.Context)

Login godoc @Summary Login @Schemes @Description Login @Tags Authentication @Accept json @Produce json @Param request body LoginRequestBody true "Credentials" @Success 200 {object} serializers.TokenSerializer @Failure 400 "Invalid credentials or already logged in" @Failure 406 "User not approved" @Failure 412 "Email not verified" @Failure 429 "Ratelimit exceeded" @Failure 500 "Internal server error" @Router /api/v1/auth/login [post]

func HandleLogout

func HandleLogout(ctx *gin.Context)

Logout godoc @Summary Logout @Schemes @Description Logout @Tags Authentication @Accept json @Produce json @Success 200 "" @Router /api/v1/auth/logout [post]

func HandleRetrieveInitialUserExists

func HandleRetrieveInitialUserExists(c *gin.Context)

HandleRetrieveInitialUserExists godoc @Summary Check if at lease one user exists @Schemes @Description retrieve if at least one user exists for the current instance of codebox @Tags Authentication @Accept json @Produce json @Success 200 {object} serializers.InitialUserExistsSerializer @Failure 429 "Ratelimit exceeded" @Router /api/v1/auth/initial-user-exists [get]

func HandleRetrieveUserPublicKey

func HandleRetrieveUserPublicKey(ctx *gin.Context)

GET /api/v1/auth/user-ssh-public-key retrieve user's ssh public key

func HandleRetriveUserDetails

func HandleRetriveUserDetails(ctx *gin.Context)

GET /api/v1/auth/user-details retrieve details about the current user

func HandleSignup

func HandleSignup(c *gin.Context)

Signup godoc @Summary Signup @Schemes @Description Signup @Tags Authentication @Accept json @Produce json @Param request body SignUpRequestBody true "Credentials" @Success 200 @Failure 429 "Ratelimit exceeded" @Router /api/v1/auth/signup [post]

func HandleStopImpersonation

func HandleStopImpersonation(c *gin.Context)

HandleStopImpersonation godoc @Summary API to stop the impersonation of a user @Schemes @Description API to stop the impersonation of a user @Tags Admin @Accept json @Produce json @Success 200 @Router /api/v1/stop-impersonation [post]

func HandleSubdomainLoginAuthorize

func HandleSubdomainLoginAuthorize(c *gin.Context)

func HandleSubdomainLoginCallback

func HandleSubdomainLoginCallback(c *gin.Context)

func HandleUpdateUserDetails

func HandleUpdateUserDetails(ctx *gin.Context)

PUT or PATCH /api/v1/auth/user-details update user first and last name

func HandleVerifyEmailAddress

func HandleVerifyEmailAddress(c *gin.Context)

HandleVerifyEmailAddress godoc @Summary Verify Email Address @Schemes @Description Verify Email Address @Tags Authentication @Accept json @Produce json @Param request body VerifyEmailAddressRequestBody true "Verification code" @Success 200 @Failure 400 "Missing or invalid field" @Failure 412 "Logged in users cannot verify email" @Failure 406 "Invalid verification code" @Failure 409 "Email already verified" @Failure 500 "Internal server error" @Router /api/v1/auth/verify-email-address [post]

func IsEmailMatchingARegex

func IsEmailMatchingARegex(email string, regEx []string) bool

Check if email is matching at least one of the given regex

func SetAuthCookie

func SetAuthCookie(ctx *gin.Context, token string, tokenDuration int) error

set authentication cookie

func SetSubdomainsAuthCookie

func SetSubdomainsAuthCookie(ctx *gin.Context, token string) error

set authentication cookie for subdomains Note: This cookie uses a different name compared to the main website's authorization cookie. This addresses a scenario where a subdomain (within the codebox server's wildcard domain) might attempt to set a cookie with the same name as the secure codebox server's authorization cookie, which browsers prevent.

func UserIsBeingImpersonated

func UserIsBeingImpersonated(c *gin.Context) (bool, error)

Method that returns if the user is being impersonated

Types

type LoginRequestBody

type LoginRequestBody struct {
	Email      string `json:"email" binding:"required"`
	Password   string `json:"password" binding:"required"`
	RememberMe bool   `json:"remember_me"`
}

type SignUpRequestBody

type SignUpRequestBody struct {
	Email     string `json:"email" binding:"required,email"`
	FirstName string `json:"first_name"  binding:"required"`
	LastName  string `json:"last_name"  binding:"required"`
	Password  string `json:"password"  binding:"required"`
}

type VerifyEmailAddressRequestBody

type VerifyEmailAddressRequestBody struct {
	Code string `json:"code" binding:"required"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL