Documentation ¶
Index ¶
- Constants
- Variables
- func AfterEach()
- func BeforeEach()
- func BuildFrontToken(userId string, atExpiry uint64, jwtPayload interface{}) string
- func ClearSession(config sessmodels.TypeNormalisedInput, res http.ResponseWriter, ...) error
- func ClearSessionFromAllTokenTransferMethods(config sessmodels.TypeNormalisedInput, req *http.Request, ...) error
- func CreateJWT(payload map[string]interface{}, validitySecondsPointer *uint64, ...) (jwtmodels.CreateJWTResponse, error)
- func CreateNewSession(req *http.Request, res http.ResponseWriter, tenantId string, userID string, ...) (sessmodels.SessionContainer, error)
- func CreateNewSessionInRequest(req *http.Request, res http.ResponseWriter, tenantId string, ...) (sessmodels.SessionContainer, error)
- func CreateNewSessionWithoutRequestResponse(tenantId string, userID string, accessTokenPayload map[string]interface{}, ...) (sessmodels.SessionContainer, error)
- func FetchAndSetClaim(sessionHandle string, claim *claims.TypeSessionClaim, ...) (bool, error)
- func GetAllSessionHandlesForUser(userID string, tenantId *string, userContext ...supertokens.UserContext) ([]string, error)
- func GetAntiCsrfTokenFromHeaders(req *http.Request) *string
- func GetAuthmodeFromHeader(req *http.Request) *sessmodels.TokenTransferMethod
- func GetCORSAllowedHeaders() []string
- func GetClaimValue(sessionHandle string, claim *claims.TypeSessionClaim, ...) (sessmodels.GetClaimValueResult, error)
- func GetCombinedJWKS() (*keyfunc.JWKS, error)
- func GetCookieValue(request *http.Request, key string) *string
- func GetCurrTimeInMS() uint64
- func GetJWKS(userContext ...supertokens.UserContext) (jwtmodels.GetJWKSResponse, error)
- func GetOpenIdDiscoveryConfiguration(userContext ...supertokens.UserContext) (openidmodels.GetOpenIdDiscoveryConfigurationResponse, error)
- func GetRequiredClaimValidators(sessionContainer sessmodels.SessionContainer, ...) ([]claims.SessionClaimValidator, error)
- func GetRidFromHeader(req *http.Request) *string
- func GetSession(req *http.Request, res http.ResponseWriter, ...) (sessmodels.SessionContainer, error)
- func GetSessionFromRequest(req *http.Request, res http.ResponseWriter, ...) (sessmodels.SessionContainer, error)
- func GetSessionFromRequestContext(ctx context.Context) sessmodels.SessionContainer
- func GetSessionInformation(sessionHandle string, userContext ...supertokens.UserContext) (*sessmodels.SessionInformation, error)
- func GetSessionWithoutRequestResponse(accessToken string, antiCSRFToken *string, ...) (sessmodels.SessionContainer, error)
- func GetToken(req *http.Request, tokenType sessmodels.TokenType, ...) (*string, error)
- func GetURLScheme(URL string) (string, error)
- func HandleRefreshAPI(apiImplementation sessmodels.APIInterface, options sessmodels.APIOptions, ...) error
- func Init(config *sessmodels.TypeInput) supertokens.Recipe
- func MakeAPIImplementation() sessmodels.APIInterface
- func MakeRecipeImplementation(querier supertokens.Querier, config sessmodels.TypeNormalisedInput, ...) sessmodels.RecipeInterface
- func MergeIntoAccessTokenPayload(sessionHandle string, accessTokenPayloadUpdate map[string]interface{}, ...) (bool, error)
- func ParseJWTWithoutSignatureVerification(token string) (sessmodels.ParsedJWTInfo, error)
- func RefreshSession(req *http.Request, res http.ResponseWriter, ...) (sessmodels.SessionContainer, error)
- func RefreshSessionInRequest(req *http.Request, res http.ResponseWriter, ...) (sessmodels.SessionContainer, error)
- func RefreshSessionWithoutRequestResponse(refreshToken string, disableAntiCSRF *bool, antiCSRFToken *string, ...) (sessmodels.SessionContainer, error)
- func RemoveClaim(sessionHandle string, claim *claims.TypeSessionClaim, ...) (bool, error)
- func ResetForTest()
- func RevokeAllSessionsForUser(userID string, tenantId *string, userContext ...supertokens.UserContext) ([]string, error)
- func RevokeMultipleSessions(sessionHandles []string, userContext ...supertokens.UserContext) ([]string, error)
- func RevokeSession(sessionHandle string, userContext ...supertokens.UserContext) (bool, error)
- func SetAccessTokenInResponse(config sessmodels.TypeNormalisedInput, res http.ResponseWriter, ...) error
- func SetClaimValue(sessionHandle string, claim *claims.TypeSessionClaim, value interface{}, ...) (bool, error)
- func SignOutAPI(apiImplementation sessmodels.APIInterface, options sessmodels.APIOptions, ...) error
- func UpdateSessionDataInDatabase(sessionHandle string, newSessionData map[string]interface{}, ...) (bool, error)
- func ValidateAccessTokenStructure(payload map[string]interface{}, version int) error
- func ValidateAndNormaliseUserInput(appInfo supertokens.NormalisedAppinfo, config *sessmodels.TypeInput) (sessmodels.TypeNormalisedInput, error)
- func ValidateClaimsForSessionHandle(sessionHandle string, ...) (sessmodels.ValidateClaimsResponse, error)
- func ValidateClaimsInJWTPayload(tenantId string, userID string, jwtPayload map[string]interface{}, ...) ([]claims.ClaimValidationError, error)
- func ValidateClaimsInPayload(claimValidators []claims.SessionClaimValidator, ...) []claims.ClaimValidationError
- func VerifySession(options *sessmodels.VerifySessionOptions, otherHandler http.HandlerFunc) http.HandlerFunc
- func VerifySessionHelper(recipeInstance Recipe, options *sessmodels.VerifySessionOptions, ...) http.HandlerFunc
- type AccessTokenInfoStruct
- type Recipe
- type SessionContainerInput
- type TokenInfo
Constants ¶
View Source
const ( RefreshAPIPath = "/session/refresh" SignoutAPIPath = "/signout" AntiCSRF_VIA_TOKEN = "VIA_TOKEN" AntiCSRF_VIA_CUSTOM_HEADER = "VIA_CUSTOM_HEADER" AntiCSRF_NONE = "NONE" CookieSameSite_NONE = "none" CookieSameSite_LAX = "lax" CookieSameSite_STRICT = "strict" )
View Source
const RECIPE_ID = "session"
Variables ¶
View Source
var AvailableTokenTransferMethods = []sessmodels.TokenTransferMethod{sessmodels.CookieTransferMethod, sessmodels.HeaderTransferMethod}
View Source
var HEADERS = []string{
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsInZlcnNpb24iOiIxIn0=",
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsInZlcnNpb24iOiIyIn0=",
}
View Source
var JWKCacheMaxAgeInMs int64 = 60000
View Source
var JWKRefreshRateLimit = 500
Functions ¶
func BeforeEach ¶
func BeforeEach()
func BuildFrontToken ¶
func ClearSession ¶
func ClearSession(config sessmodels.TypeNormalisedInput, res http.ResponseWriter, transferMethod sessmodels.TokenTransferMethod, request *http.Request, userContext supertokens.UserContext) error
func ClearSessionFromAllTokenTransferMethods ¶
func ClearSessionFromAllTokenTransferMethods(config sessmodels.TypeNormalisedInput, req *http.Request, res http.ResponseWriter, userContext supertokens.UserContext) error
func CreateJWT ¶
func CreateJWT(payload map[string]interface{}, validitySecondsPointer *uint64, useStaticSigningKey *bool, userContext ...supertokens.UserContext) (jwtmodels.CreateJWTResponse, error)
func CreateNewSession ¶
func CreateNewSession(req *http.Request, res http.ResponseWriter, tenantId string, userID string, accessTokenPayload map[string]interface{}, sessionDataInDatabase map[string]interface{}, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func CreateNewSessionInRequest ¶
func CreateNewSessionInRequest(req *http.Request, res http.ResponseWriter, tenantId string, config sessmodels.TypeNormalisedInput, appInfo supertokens.NormalisedAppinfo, recipeInstance Recipe, recipeImpl sessmodels.RecipeInterface, userID string, accessTokenPayload map[string]interface{}, sessionDataInDatabase map[string]interface{}, userContext supertokens.UserContext) (sessmodels.SessionContainer, error)
func CreateNewSessionWithoutRequestResponse ¶
func CreateNewSessionWithoutRequestResponse(tenantId string, userID string, accessTokenPayload map[string]interface{}, sessionDataInDatabase map[string]interface{}, disableAntiCSRF *bool, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func FetchAndSetClaim ¶
func FetchAndSetClaim(sessionHandle string, claim *claims.TypeSessionClaim, userContext ...supertokens.UserContext) (bool, error)
func GetAllSessionHandlesForUser ¶
func GetAllSessionHandlesForUser(userID string, tenantId *string, userContext ...supertokens.UserContext) ([]string, error)
func GetAuthmodeFromHeader ¶
func GetAuthmodeFromHeader(req *http.Request) *sessmodels.TokenTransferMethod
func GetCORSAllowedHeaders ¶
func GetCORSAllowedHeaders() []string
func GetClaimValue ¶
func GetClaimValue(sessionHandle string, claim *claims.TypeSessionClaim, userContext ...supertokens.UserContext) (sessmodels.GetClaimValueResult, error)
func GetCombinedJWKS ¶
func GetCombinedJWKS() (*keyfunc.JWKS, error)
* This function fetches all JWKs from the first available core instance. This combines the other JWKS functions to become error resistant.
Every core instance a backend is connected to is expected to connect to the same database and use the same key set for token verification. Otherwise, the result of session verification would depend on which core is currently available.
func GetCurrTimeInMS ¶
func GetCurrTimeInMS() uint64
func GetJWKS ¶
func GetJWKS(userContext ...supertokens.UserContext) (jwtmodels.GetJWKSResponse, error)
func GetOpenIdDiscoveryConfiguration ¶
func GetOpenIdDiscoveryConfiguration(userContext ...supertokens.UserContext) (openidmodels.GetOpenIdDiscoveryConfigurationResponse, error)
func GetRequiredClaimValidators ¶
func GetRequiredClaimValidators( sessionContainer sessmodels.SessionContainer, overrideGlobalClaimValidators func(globalClaimValidators []claims.SessionClaimValidator, sessionContainer sessmodels.SessionContainer, userContext supertokens.UserContext) ([]claims.SessionClaimValidator, error), userContext supertokens.UserContext, ) ([]claims.SessionClaimValidator, error)
func GetRidFromHeader ¶
func GetSession ¶
func GetSession(req *http.Request, res http.ResponseWriter, options *sessmodels.VerifySessionOptions, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func GetSessionFromRequest ¶
func GetSessionFromRequest(req *http.Request, res http.ResponseWriter, config sessmodels.TypeNormalisedInput, options *sessmodels.VerifySessionOptions, recipeImpl sessmodels.RecipeInterface, userContext supertokens.UserContext) (sessmodels.SessionContainer, error)
func GetSessionFromRequestContext ¶
func GetSessionFromRequestContext(ctx context.Context) sessmodels.SessionContainer
func GetSessionInformation ¶
func GetSessionInformation(sessionHandle string, userContext ...supertokens.UserContext) (*sessmodels.SessionInformation, error)
func GetSessionWithoutRequestResponse ¶
func GetSessionWithoutRequestResponse(accessToken string, antiCSRFToken *string, options *sessmodels.VerifySessionOptions, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func GetToken ¶
func GetToken(req *http.Request, tokenType sessmodels.TokenType, transferMethod sessmodels.TokenTransferMethod) (*string, error)
func GetURLScheme ¶
func HandleRefreshAPI ¶
func HandleRefreshAPI(apiImplementation sessmodels.APIInterface, options sessmodels.APIOptions, userContext supertokens.UserContext) error
func Init ¶
func Init(config *sessmodels.TypeInput) supertokens.Recipe
func MakeAPIImplementation ¶
func MakeAPIImplementation() sessmodels.APIInterface
func MakeRecipeImplementation ¶
func MakeRecipeImplementation(querier supertokens.Querier, config sessmodels.TypeNormalisedInput, appInfo supertokens.NormalisedAppinfo) sessmodels.RecipeInterface
func MergeIntoAccessTokenPayload ¶
func MergeIntoAccessTokenPayload(sessionHandle string, accessTokenPayloadUpdate map[string]interface{}, userContext ...supertokens.UserContext) (bool, error)
func ParseJWTWithoutSignatureVerification ¶
func ParseJWTWithoutSignatureVerification(token string) (sessmodels.ParsedJWTInfo, error)
func RefreshSession ¶
func RefreshSession(req *http.Request, res http.ResponseWriter, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func RefreshSessionInRequest ¶
func RefreshSessionInRequest(req *http.Request, res http.ResponseWriter, config sessmodels.TypeNormalisedInput, recipeImpl sessmodels.RecipeInterface, userContext supertokens.UserContext) (sessmodels.SessionContainer, error)
func RefreshSessionWithoutRequestResponse ¶
func RefreshSessionWithoutRequestResponse(refreshToken string, disableAntiCSRF *bool, antiCSRFToken *string, userContext ...supertokens.UserContext) (sessmodels.SessionContainer, error)
func RemoveClaim ¶
func RemoveClaim(sessionHandle string, claim *claims.TypeSessionClaim, userContext ...supertokens.UserContext) (bool, error)
func ResetForTest ¶
func ResetForTest()
func RevokeAllSessionsForUser ¶
func RevokeAllSessionsForUser(userID string, tenantId *string, userContext ...supertokens.UserContext) ([]string, error)
func RevokeMultipleSessions ¶
func RevokeMultipleSessions(sessionHandles []string, userContext ...supertokens.UserContext) ([]string, error)
func RevokeSession ¶
func RevokeSession(sessionHandle string, userContext ...supertokens.UserContext) (bool, error)
func SetAccessTokenInResponse ¶
func SetAccessTokenInResponse(config sessmodels.TypeNormalisedInput, res http.ResponseWriter, accessToken string, frontToken string, tokenTransferMethod sessmodels.TokenTransferMethod, request *http.Request, userContext supertokens.UserContext) error
func SetClaimValue ¶
func SetClaimValue(sessionHandle string, claim *claims.TypeSessionClaim, value interface{}, userContext ...supertokens.UserContext) (bool, error)
func SignOutAPI ¶
func SignOutAPI(apiImplementation sessmodels.APIInterface, options sessmodels.APIOptions, userContext supertokens.UserContext) error
func UpdateSessionDataInDatabase ¶
func UpdateSessionDataInDatabase(sessionHandle string, newSessionData map[string]interface{}, userContext ...supertokens.UserContext) (bool, error)
func ValidateAndNormaliseUserInput ¶
func ValidateAndNormaliseUserInput(appInfo supertokens.NormalisedAppinfo, config *sessmodels.TypeInput) (sessmodels.TypeNormalisedInput, error)
func ValidateClaimsForSessionHandle ¶
func ValidateClaimsForSessionHandle( sessionHandle string, overrideGlobalClaimValidators func([]claims.SessionClaimValidator, sessmodels.SessionInformation, supertokens.UserContext) []claims.SessionClaimValidator, userContext ...supertokens.UserContext, ) (sessmodels.ValidateClaimsResponse, error)
func ValidateClaimsInJWTPayload ¶
func ValidateClaimsInJWTPayload( tenantId string, userID string, jwtPayload map[string]interface{}, overrideGlobalClaimValidators func(globalClaimValidators []claims.SessionClaimValidator, userID string, userContext ...supertokens.UserContext) []claims.SessionClaimValidator, userContext ...supertokens.UserContext, ) ([]claims.ClaimValidationError, error)
func ValidateClaimsInPayload ¶
func ValidateClaimsInPayload(claimValidators []claims.SessionClaimValidator, newAccessTokenPayload map[string]interface{}, userContext supertokens.UserContext) []claims.ClaimValidationError
func VerifySession ¶
func VerifySession(options *sessmodels.VerifySessionOptions, otherHandler http.HandlerFunc) http.HandlerFunc
func VerifySessionHelper ¶
func VerifySessionHelper(recipeInstance Recipe, options *sessmodels.VerifySessionOptions, otherHandler http.HandlerFunc) http.HandlerFunc
Types ¶
type AccessTokenInfoStruct ¶
type AccessTokenInfoStruct struct { SessionHandle string UserID string RefreshTokenHash1 string ParentRefreshTokenHash1 *string UserData map[string]interface{} AntiCsrfToken *string ExpiryTime uint64 TimeCreated uint64 TenantId string }
func GetInfoFromAccessToken ¶
func GetInfoFromAccessToken(jwtInfo sessmodels.ParsedJWTInfo, jwks *keyfunc.JWKS, doAntiCsrfCheck bool) (*AccessTokenInfoStruct, error)
type Recipe ¶
type Recipe struct { RecipeModule supertokens.RecipeModule Config sessmodels.TypeNormalisedInput RecipeImpl sessmodels.RecipeInterface OpenIdRecipe openid.Recipe APIImpl sessmodels.APIInterface // contains filtered or unexported fields }
func MakeRecipe ¶
func MakeRecipe(recipeId string, appInfo supertokens.NormalisedAppinfo, config *sessmodels.TypeInput, onSuperTokensAPIError func(err error, req *http.Request, res http.ResponseWriter)) (Recipe, error)
func (*Recipe) AddClaimFromOtherRecipe ¶
func (r *Recipe) AddClaimFromOtherRecipe(claim *claims.TypeSessionClaim) error
Claim functions
func (*Recipe) AddClaimValidatorFromOtherRecipe ¶
func (r *Recipe) AddClaimValidatorFromOtherRecipe(validator claims.SessionClaimValidator) error
func (*Recipe) GetClaimsAddedByOtherRecipes ¶
func (r *Recipe) GetClaimsAddedByOtherRecipes() []*claims.TypeSessionClaim
type SessionContainerInput ¶
type SessionContainerInput struct {
// contains filtered or unexported fields
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.