Documentation ¶
Index ¶
Constants ¶
View Source
const ( // AuthRecipeMethodBasicAuth is the basic_auth auth method AuthRecipeMethodBasicAuth = "basic_auth" // AuthRecipeMethodMobileBasicAuth is the mobile basic_auth method, where user can signup using mobile number and password AuthRecipeMethodMobileBasicAuth = "mobile_basic_auth" // AuthRecipeMethodMagicLinkLogin is the magic_link_login auth method AuthRecipeMethodMagicLinkLogin = "magic_link_login" // AuthRecipeMethodMobileOTP is the mobile_otp auth method AuthRecipeMethodMobileOTP = "mobile_otp" // AuthRecipeMethodGoogle is the google auth method AuthRecipeMethodGoogle = "google" // AuthRecipeMethodGithub is the github auth method AuthRecipeMethodGithub = "github" // AuthRecipeMethodFacebook is the facebook auth method AuthRecipeMethodFacebook = "facebook" // AuthRecipeMethodLinkedin is the linkedin auth method AuthRecipeMethodLinkedIn = "linkedin" // AuthRecipeMethodApple is the apple auth method AuthRecipeMethodApple = "apple" // AuthRecipeMethodDiscord is the discord auth method AuthRecipeMethodDiscord = "discord" // AuthRecipeMethodTwitter is the twitter auth method AuthRecipeMethodTwitter = "twitter" // AuthRecipeMethodMicrosoft is the microsoft auth method AuthRecipeMethodMicrosoft = "microsoft" // AuthRecipeMethodTwitch is the twitch auth method AuthRecipeMethodTwitch = "twitch" // AuthRecipeMethodRoblox is the roblox auth method AuthRecipeMethodRoblox = "roblox" )
View Source
const ( // AppCookieName is the name of the cookie that is used to store the application token AppCookieName = "cookie" // AdminCookieName is the name of the cookie that is used to store the admin token AdminCookieName = "authorizer-admin" // MfaCookieName is the name of the cookie that is used to store the mfa session MfaCookieName = "mfa" )
View Source
const ( // DbTypePostgres is the postgres database type DbTypePostgres = "postgres" // DbTypeSqlite is the sqlite database type DbTypeSqlite = "sqlite" // DbTypeLibSQL is the libsql / Turso database type DbTypeLibSQL = "libsql" // DbTypeMysql is the mysql database type DbTypeMysql = "mysql" // DbTypeSqlserver is the sqlserver database type DbTypeSqlserver = "sqlserver" // DbTypeArangodb is the arangodb database type DbTypeArangodb = "arangodb" // DbTypeMongodb is the mongodb database type DbTypeMongodb = "mongodb" // DbTypeYugabyte is the yugabyte database type DbTypeYugabyte = "yugabyte" // DbTypeMariaDB is the mariadb database type DbTypeMariaDB = "mariadb" // DbTypeCassandra is the cassandra database type DbTypeCassandraDB = "cassandradb" // DbTypeScyllaDB is the scylla database type DbTypeScyllaDB = "scylladb" // DbTypeCockroachDB is the cockroach database type DbTypeCockroachDB = "cockroachdb" // DbTypePlanetScaleDB is the planetscale database type DbTypePlanetScaleDB = "planetscale" // DbTypeDynamoDB is the Dynamo database type DbTypeDynamoDB = "dynamodb" // DbTypeCouchbaseDB is the Couchbase database type DbTypeCouchbaseDB = "couchbase" )
View Source
const ( // TestEnv is used for testing TestEnv = "test" // EnvKeyEnv key for env variable ENV EnvKeyEnv = "ENV" // EnvKeyEnvPath key for cli arg variable ENV_PATH EnvKeyEnvPath = "ENV_PATH" // EnvKeyAuthorizerURL key for env variable AUTHORIZER_URL EnvKeyAuthorizerURL = "AUTHORIZER_URL" // EnvKeyPort key for env variable PORT EnvKeyPort = "PORT" // EnvKeyAccessTokenExpiryTime key for env variable ACCESS_TOKEN_EXPIRY_TIME EnvKeyAccessTokenExpiryTime = "ACCESS_TOKEN_EXPIRY_TIME" // EnvKeyAdminSecret key for env variable ADMIN_SECRET EnvKeyAdminSecret = "ADMIN_SECRET" // EnvKeyDatabaseType key for env variable DATABASE_TYPE EnvKeyDatabaseType = "DATABASE_TYPE" // EnvKeyDatabaseURL key for env variable DATABASE_URL EnvKeyDatabaseURL = "DATABASE_URL" // EnvAwsRegion key for env variable AWS REGION EnvAwsRegion = "AWS_REGION" // EnvAwsAccessKeyID key for env variable AWS_ACCESS_KEY_ID EnvAwsAccessKeyID = "AWS_ACCESS_KEY_ID" // EnvAwsAccessKey key for env variable AWS_SECRET_ACCESS_KEY EnvAwsSecretAccessKey = "AWS_SECRET_ACCESS_KEY" // EnvKeyDatabaseName key for env variable DATABASE_NAME EnvKeyDatabaseName = "DATABASE_NAME" // EnvKeyDatabaseUsername key for env variable DATABASE_USERNAME EnvKeyDatabaseUsername = "DATABASE_USERNAME" // EnvKeyDatabasePassword key for env variable DATABASE_PASSWORD EnvKeyDatabasePassword = "DATABASE_PASSWORD" // EnvKeyDatabasePort key for env variable DATABASE_PORT EnvKeyDatabasePort = "DATABASE_PORT" // EnvKeyDatabaseHost key for env variable DATABASE_HOST EnvKeyDatabaseHost = "DATABASE_HOST" // EnvKeyDatabaseCert key for env variable DATABASE_CERT EnvKeyDatabaseCert = "DATABASE_CERT" // EnvKeyDatabaseCertKey key for env variable DATABASE_KEY EnvKeyDatabaseCertKey = "DATABASE_CERT_KEY" // EnvKeyDatabaseCACert key for env variable DATABASE_CA_CERT EnvKeyDatabaseCACert = "DATABASE_CA_CERT" // EnvCouchbaseBucket key for env variable COUCHBASE_BUCKET EnvCouchbaseBucket = "COUCHBASE_BUCKET" // EnvCouchbaseBucketRAMQuotaMB key for env variable COUCHBASE_BUCKET_RAM_QUOTA // This value should be parsed as number EnvCouchbaseBucketRAMQuotaMB = "COUCHBASE_BUCKET_RAM_QUOTA" // EnvCouchbaseBucket key for env variable COUCHBASE_SCOPE EnvCouchbaseScope = "COUCHBASE_SCOPE" // EnvKeySmtpHost key for env variable SMTP_HOST EnvKeySmtpHost = "SMTP_HOST" // EnvKeySmtpPort key for env variable SMTP_PORT EnvKeySmtpPort = "SMTP_PORT" // EnvKeySmtpUsername key for env variable SMTP_USERNAME EnvKeySmtpUsername = "SMTP_USERNAME" // EnvKeySmtpPassword key for env variable SMTP_PASSWORD EnvKeySmtpPassword = "SMTP_PASSWORD" // EnvKeySmtpLocalName key for env variable SMTP_LOCAL_NAME EnvKeySmtpLocalName = "SMTP_LOCAL_NAME" // EnvKeySenderEmail key for env variable SENDER_EMAIL EnvKeySenderEmail = "SENDER_EMAIL" // EnvKeySenderName key for env variable SENDER_NAME EnvKeySenderName = "SENDER_NAME" // EnvKeyIsEmailServiceEnabled key for env variable IS_EMAIL_SERVICE_ENABLED EnvKeyIsEmailServiceEnabled = "IS_EMAIL_SERVICE_ENABLED" // EnvKeyIsSMSServiceEnabled key for env variable IS_SMS_SERVICE_ENABLED EnvKeyIsSMSServiceEnabled = "IS_SMS_SERVICE_ENABLED" // EnvKeyAppCookieSecure key for env variable APP_COOKIE_SECURE EnvKeyAppCookieSecure = "APP_COOKIE_SECURE" // EnvKeyAdminCookieSecure key for env variable ADMIN_COOKIE_SECURE EnvKeyAdminCookieSecure = "ADMIN_COOKIE_SECURE" // EnvKeyJwtType key for env variable JWT_TYPE EnvKeyJwtType = "JWT_TYPE" // EnvKeyJwtSecret key for env variable JWT_SECRET EnvKeyJwtSecret = "JWT_SECRET" // EnvKeyJwtPrivateKey key for env variable JWT_PRIVATE_KEY EnvKeyJwtPrivateKey = "JWT_PRIVATE_KEY" // EnvKeyJwtPublicKey key for env variable JWT_PUBLIC_KEY EnvKeyJwtPublicKey = "JWT_PUBLIC_KEY" // EnvKeyAppURL key for env variable APP_URL EnvKeyAppURL = "APP_URL" // EnvKeyRedisURL key for env variable REDIS_URL EnvKeyRedisURL = "REDIS_URL" // EnvKeyResetPasswordURL key for env variable RESET_PASSWORD_URL EnvKeyResetPasswordURL = "RESET_PASSWORD_URL" // EnvKeyJwtRoleClaim key for env variable JWT_ROLE_CLAIM EnvKeyJwtRoleClaim = "JWT_ROLE_CLAIM" // EnvKeyGoogleClientID key for env variable GOOGLE_CLIENT_ID EnvKeyGoogleClientID = "GOOGLE_CLIENT_ID" // EnvKeyGoogleClientSecret key for env variable GOOGLE_CLIENT_SECRET EnvKeyGoogleClientSecret = "GOOGLE_CLIENT_SECRET" // EnvKeyGithubClientID key for env variable GITHUB_CLIENT_ID EnvKeyGithubClientID = "GITHUB_CLIENT_ID" // EnvKeyGithubClientSecret key for env variable GITHUB_CLIENT_SECRET EnvKeyGithubClientSecret = "GITHUB_CLIENT_SECRET" // EnvKeyFacebookClientID key for env variable FACEBOOK_CLIENT_ID EnvKeyFacebookClientID = "FACEBOOK_CLIENT_ID" // EnvKeyFacebookClientSecret key for env variable FACEBOOK_CLIENT_SECRET EnvKeyFacebookClientSecret = "FACEBOOK_CLIENT_SECRET" // EnvKeyLinkedinClientID key for env variable LINKEDIN_CLIENT_ID EnvKeyLinkedInClientID = "LINKEDIN_CLIENT_ID" // EnvKeyLinkedinClientSecret key for env variable LINKEDIN_CLIENT_SECRET EnvKeyLinkedInClientSecret = "LINKEDIN_CLIENT_SECRET" // EnvKeyAppleClientID key for env variable APPLE_CLIENT_ID EnvKeyAppleClientID = "APPLE_CLIENT_ID" // EnvKeyAppleClientSecret key for env variable APPLE_CLIENT_SECRET EnvKeyAppleClientSecret = "APPLE_CLIENT_SECRET" // EnvKeyDiscordClientID key for env variable DISCORD_CLIENT_ID EnvKeyDiscordClientID = "DISCORD_CLIENT_ID" // EnvKeyDiscordClientSecret key for env variable DISCORD_CLIENT_SECRET EnvKeyDiscordClientSecret = "DISCORD_CLIENT_SECRET" // EnvKeyTwitterClientID key for env variable TWITTER_CLIENT_ID EnvKeyTwitterClientID = "TWITTER_CLIENT_ID" // EnvKeyTwitterClientSecret key for env variable TWITTER_CLIENT_SECRET EnvKeyTwitterClientSecret = "TWITTER_CLIENT_SECRET" // EnvKeyMicrosoftClientID key for env variable MICROSOFT_CLIENT_ID EnvKeyMicrosoftClientID = "MICROSOFT_CLIENT_ID" // EnvKeyMicrosoftActiveDirectoryTenantID key for env variable MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID EnvKeyMicrosoftActiveDirectoryTenantID = "MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID" // EnvKeyMicrosoftClientSecret key for env variable MICROSOFT_CLIENT_SECRET EnvKeyMicrosoftClientSecret = "MICROSOFT_CLIENT_SECRET" // EnvKeyTwitchClientID key for env variable TWITCH_CLIENT_ID EnvKeyTwitchClientID = "TWITCH_CLIENT_ID" // EnvKeyTwitchClientSecret key for env variable TWITCH_CLIENT_SECRET EnvKeyTwitchClientSecret = "TWITCH_CLIENT_SECRET" // EnvKeyRobloxClientID key for env variable ROBLOX_CLIENT_ID EnvKeyRobloxClientID = "ROBLOX_CLIENT_ID" // EnvKeyRobloxClientSecret key for env variable ROBLOX_CLIENT_SECRET EnvKeyRobloxClientSecret = "ROBLOX_CLIENT_SECRET" // EnvKeyOrganizationName key for env variable ORGANIZATION_NAME EnvKeyOrganizationName = "ORGANIZATION_NAME" // EnvKeyOrganizationLogo key for env variable ORGANIZATION_LOGO EnvKeyOrganizationLogo = "ORGANIZATION_LOGO" // EnvKeyCustomAccessTokenScript key for env variable CUSTOM_ACCESS_TOKEN_SCRIPT EnvKeyCustomAccessTokenScript = "CUSTOM_ACCESS_TOKEN_SCRIPT" // Not Exposed Keys // EnvKeyClientID key for env variable CLIENT_ID EnvKeyClientID = "CLIENT_ID" // EnvKeyClientSecret key for env variable CLIENT_SECRET EnvKeyClientSecret = "CLIENT_SECRET" // EnvKeyEncryptionKey key for env variable ENCRYPTION_KEY EnvKeyEncryptionKey = "ENCRYPTION_KEY" // EnvKeyJWK key for env variable JWK EnvKeyJWK = "JWK" // Boolean variables // EnvKeyIsProd key for env variable IS_PROD EnvKeyIsProd = "IS_PROD" // EnvKeyDisableEmailVerification key for env variable DISABLE_EMAIL_VERIFICATION EnvKeyDisableEmailVerification = "DISABLE_EMAIL_VERIFICATION" // EnvKeyDisableBasicAuthentication key for env variable DISABLE_BASIC_AUTH EnvKeyDisableBasicAuthentication = "DISABLE_BASIC_AUTHENTICATION" // EnvKeyDisableBasicAuthentication key for env variable DISABLE_MOBILE_BASIC_AUTH EnvKeyDisableMobileBasicAuthentication = "DISABLE_MOBILE_BASIC_AUTHENTICATION" // EnvKeyDisableMagicLinkLogin key for env variable DISABLE_MAGIC_LINK_LOGIN EnvKeyDisableMagicLinkLogin = "DISABLE_MAGIC_LINK_LOGIN" // EnvKeyDisableLoginPage key for env variable DISABLE_LOGIN_PAGE EnvKeyDisableLoginPage = "DISABLE_LOGIN_PAGE" // EnvKeyDisableSignUp key for env variable DISABLE_SIGN_UP EnvKeyDisableSignUp = "DISABLE_SIGN_UP" // EnvKeyDisableRedisForEnv key for env variable DISABLE_REDIS_FOR_ENV EnvKeyDisableRedisForEnv = "DISABLE_REDIS_FOR_ENV" // EnvKeyDisableStrongPassword key for env variable DISABLE_STRONG_PASSWORD EnvKeyDisableStrongPassword = "DISABLE_STRONG_PASSWORD" // EnvKeyEnforceMultiFactorAuthentication is key for env variable ENFORCE_MULTI_FACTOR_AUTHENTICATION // If enforced and changed later on, existing user will have MFA but new user will not have MFA EnvKeyEnforceMultiFactorAuthentication = "ENFORCE_MULTI_FACTOR_AUTHENTICATION" // EnvKeyDisableMultiFactorAuthentication is key for env variable DISABLE_MULTI_FACTOR_AUTHENTICATION // this variable is used to completely disable multi factor authentication. It will have no effect on profile preference EnvKeyDisableMultiFactorAuthentication = "DISABLE_MULTI_FACTOR_AUTHENTICATION" // EnvKeyDisableTOTPLogin is key for env variable DISABLE_TOTP_LOGIN // this variable is used to completely disable totp verification EnvKeyDisableTOTPLogin = "DISABLE_TOTP_LOGIN" // EnvKeyDisableMailOTPLogin is key for env variable DISABLE_MAIL_OTP_LOGIN // this variable is used to completely disable totp verification EnvKeyDisableMailOTPLogin = "DISABLE_MAIL_OTP_LOGIN" // EnvKeyDisablePhoneVerification is key for env variable DISABLE_PHONE_VERIFICATION // this variable is used to disable phone verification EnvKeyDisablePhoneVerification = "DISABLE_PHONE_VERIFICATION" // EnvKeyDisablePlayGround is key for env variable DISABLE_PLAYGROUND // this variable will disable or enable playground use in dashboard EnvKeyDisablePlayGround = "DISABLE_PLAYGROUND" // Slice variables // EnvKeyRoles key for env variable ROLES EnvKeyRoles = "ROLES" // EnvKeyProtectedRoles key for env variable PROTECTED_ROLES EnvKeyProtectedRoles = "PROTECTED_ROLES" // EnvKeyDefaultRoles key for env variable DEFAULT_ROLES EnvKeyDefaultRoles = "DEFAULT_ROLES" // EnvKeyAllowedOrigins key for env variable ALLOWED_ORIGINS EnvKeyAllowedOrigins = "ALLOWED_ORIGINS" // For oauth/openid/authorize // EnvKeyDefaultAuthorizeResponseType key for env variable DEFAULT_AUTHORIZE_RESPONSE_TYPE // This env is used for setting default response type in authorize handler EnvKeyDefaultAuthorizeResponseType = "DEFAULT_AUTHORIZE_RESPONSE_TYPE" // EnvKeyDefaultAuthorizeResponseMode key for env variable DEFAULT_AUTHORIZE_RESPONSE_MODE // This env is used for setting default response mode in authorize handler EnvKeyDefaultAuthorizeResponseMode = "DEFAULT_AUTHORIZE_RESPONSE_MODE" // Twilio env variables // EnvKeyTwilioAPIKey key for env variable TWILIO_API_KEY EnvKeyTwilioAPIKey = "TWILIO_API_KEY" // EnvKeyTwilioAPISecret key for env variable TWILIO_API_SECRET EnvKeyTwilioAPISecret = "TWILIO_API_SECRET" // EnvKeyTwilioAccountSID key for env variable TWILIO_ACCOUNT_SID EnvKeyTwilioAccountSID = "TWILIO_ACCOUNT_SID" // EnvKeyTwilioSender key for env variable TWILIO_SENDER EnvKeyTwilioSender = "TWILIO_SENDER" )
View Source
const ( // - query: for Authorization Code grant. 302 Found triggers redirect. ResponseModeQuery = "query" // - fragment: for Implicit grant. 302 Found triggers redirect. ResponseModeFragment = "fragment" // - form_post: 200 OK with response parameters embedded in an HTML form as hidden parameters. ResponseModeFormPost = "form_post" // - web_message: For Silent Authentication. Uses HTML5 web messaging. ResponseModeWebMessage = "web_message" // For the Authorization Code grant, use response_type=code to include the authorization code. ResponseTypeCode = "code" // For the Implicit grant, use response_type=token to include an access token. ResponseTypeToken = "token" // For the Implicit grant of id_token, use response_type=id_token to include an identifier token. ResponseTypeIDToken = "id_token" // Constant indicating the "signup" screen hint for customizing authentication process and redirect to a signup page. ScreenHintSignUp = "signup" )
View Source
const ( // Ref: https://github.com/qor/auth/blob/master/providers/google/google.go // deprecated and not used. instead we follow open id approach for google login GoogleUserInfoURL = "https://www.googleapis.com/oauth2/v3/userinfo" // Ref: https://github.com/qor/auth/blob/master/providers/facebook/facebook.go#L18 FacebookUserInfoURL = "https://graph.facebook.com/me?fields=id,first_name,last_name,name,email,picture&access_token=" // Ref: https://docs.github.com/en/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#3-your-github-app-accesses-the-api-with-the-users-access-token GithubUserInfoURL = "https://api.github.com/user" // Get github user emails when user info email is empty Ref: https://stackoverflow.com/a/35387123 GithubUserEmails = "https://api.github.com/user/emails" // Ref: https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api LinkedInUserInfoURL = "" /* 142-byte string literal not displayed */ LinkedInEmailURL = "https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))" TwitterUserInfoURL = "https://api.twitter.com/2/users/me?user.fields=id,name,profile_image_url,username" // RobloxUserInfoURL is the URL to get user info from Roblox RobloxUserInfoURL = "https://apis.roblox.com/oauth/v1/userinfo" DiscordUserInfoURL = "https://discord.com/api/oauth2/@me" // Get microsoft user info. // Ref: https://learn.microsoft.com/en-us/azure/active-directory/develop/userinfo MicrosoftUserInfoURL = "https://graph.microsoft.com/oidc/userinfo" )
View Source
const ( // TokenTypeRefreshToken is the refresh_token token type TokenTypeRefreshToken = "refresh_token" // TokenTypeAccessToken is the access_token token type TokenTypeAccessToken = "access_token" // TokenTypeIdentityToken is the identity_token token type TokenTypeIdentityToken = "id_token" // TokenTypeSessionToken is the session_token type used for browser session TokenTypeSessionToken = "session_token" )
View Source
const ( // VerificationTypeBasicAuthSignup is the basic_auth_signup verification type VerificationTypeBasicAuthSignup = "basic_auth_signup" // VerificationTypeMagicLinkLogin is the magic_link_login verification type VerificationTypeMagicLinkLogin = "magic_link_login" // VerificationTypeUpdateEmail is the update_email verification type VerificationTypeUpdateEmail = "update_email" // VerificationTypeForgotPassword is the forgot_password verification type VerificationTypeForgotPassword = "forgot_password" // VerificationTypeInviteMember is the invite_member verification type VerificationTypeInviteMember = "invite_member" // VerificationTypeOTP is the otp verification type VerificationTypeOTP = "verify_otp" )
View Source
const ( // UserLoginWebhookEvent name for login event UserLoginWebhookEvent = `user.login` // UserCreatedWebhookEvent name for user creation event // This is triggered when user entry is created but still not verified UserCreatedWebhookEvent = `user.created` // UserSignUpWebhookEvent name for signup event UserSignUpWebhookEvent = `user.signup` // UserAccessRevokedWebhookEvent name for user access revoke event UserAccessRevokedWebhookEvent = `user.access_revoked` // UserAccessEnabledWebhookEvent name for user access enable event UserAccessEnabledWebhookEvent = `user.access_enabled` // UserDeletedWebhookEvent name for user deleted event UserDeletedWebhookEvent = `user.deleted` // UserDeactivatedWebhookEvent name for user deactivated event UserDeactivatedWebhookEvent = `user.deactivated` )
View Source
const (
// EnvKeyTOTPAuthenticator key for env variable TOTP
EnvKeyTOTPAuthenticator = "totp"
)
Authenticators Methods
Variables ¶
View Source
var DefaultLimit = 10
DefaultLimit is the default limit for pagination
View Source
var VERSION = "0.0.1"
View Source
var ( // VerificationTypes is slice of all verification types VerificationTypes = []string{ VerificationTypeBasicAuthSignup, VerificationTypeMagicLinkLogin, VerificationTypeUpdateEmail, VerificationTypeForgotPassword, VerificationTypeInviteMember, } )
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.