GoTrueClient class
API client to interact with gotrue server.
url
URL of gotrue instance
autoRefreshToken
whether to refresh the token automatically or not. Defaults to true.
httpClient
custom http client.
asyncStorage
local storage to store pkce code verifiers. Required when using the pkce flow.
Set flowType
to AuthFlowType.implicit to perform old implicit auth flow.
Constructors
-
GoTrueClient.new({String? url, Map<
String, String> ? headers, bool? autoRefreshToken, Client? httpClient, GotrueAsyncStorage? asyncStorage, AuthFlowType flowType = AuthFlowType.pkce}) - API client to interact with gotrue server.
Properties
- admin ↔ GoTrueAdminApi
-
Namespace for the GoTrue API methods.
These can be used for example to get a user from a JWT in a server environment or reset a user's password.
latefinal
- currentSession → Session?
-
Returns the current session, if any;
no setter
- currentUser → User?
-
Returns the current logged in user, if any;
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
-
headers
→ Map<
String, String> -
Getter for the headers
no setter
- mfa ↔ GoTrueMFAApi
-
Namespace for the GoTrue MFA API methods.
latefinal
-
onAuthStateChange
→ Stream<
AuthState> -
Receive a notification every time an auth event happens.
no setter
-
onAuthStateChangeSync
→ Stream<
AuthState> -
Don't use this, it's for internal use only.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
dispose(
) → void -
exchangeCodeForSession(
String authCode) → Future< AuthSessionUrlResponse> - Verifies the PKCE code verifyer and retrieves a session.
-
getLinkIdentityUrl(
OAuthProvider provider, {String? redirectTo, String? scopes, Map< String, String> ? queryParams}) → Future<OAuthResponse> - Returns the URL to link the user's identity with an OAuth provider.
-
getOAuthSignInUrl(
{required OAuthProvider provider, String? redirectTo, String? scopes, Map< String, String> ? queryParams}) → Future<OAuthResponse> - Generates a link to log in an user via a third-party provider.
-
getSessionFromUrl(
Uri originUrl, {bool storeSession = true}) → Future< AuthSessionUrlResponse> - Gets the session data from a magic link or oauth2 callback URL
-
getSSOSignInUrl(
{String? providerId, String? domain, String? redirectTo, String? captchaToken}) → Future< String> - Obtains a URL to perform a single-sign on using an enterprise Identity Provider. The redirect URL is implementation and SSO protocol specific.
-
getUser(
[String? jwt]) → Future< UserResponse> -
Gets the current user details from current session or custom
jwt
-
getUserIdentities(
) → Future< List< UserIdentity> > - Gets all the identities linked to a user.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyAllSubscribers(
AuthChangeEvent event, {Session? session, bool broadcast = true}) → void - For internal use only.
-
notifyException(
Object exception, [StackTrace? stackTrace]) → Object - For internal use only.
-
reauthenticate(
) → Future< void> - Sends a reauthentication OTP to the user's email or phone number.
-
recoverSession(
String jsonStr) → Future< AuthResponse> - Recover session from stringified Session.
-
refreshSession(
[String? refreshToken]) → Future< AuthResponse> - Returns a new session, regardless of expiry status. Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession(). If the current session's refresh token is invalid, an error will be thrown.
-
resend(
{String? email, String? phone, required OtpType type, String? emailRedirectTo, String? captchaToken}) → Future< ResendResponse> - Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.
-
resetPasswordForEmail(
String email, {String? redirectTo, String? captchaToken}) → Future< void> - Sends a reset request to an email address.
-
setInitialSession(
String jsonStr) → Future< void> - Set the initial session to the session obtained from local storage
-
setSession(
String refreshToken) → Future< AuthResponse> - Sets the session data from refresh_token and returns the current session.
-
signInAnonymously(
{Map< String, dynamic> ? data, String? captchaToken}) → Future<AuthResponse> - Creates a new anonymous user.
-
signInWithIdToken(
{required OAuthProvider provider, required String idToken, String? accessToken, String? nonce, String? captchaToken}) → Future< AuthResponse> -
Allows signing in with an ID token issued by certain supported providers.
The
idToken
is verified for validity and a new session is established. This method of signing in only supports OAuthProvider.google, OAuthProvider.apple, OAuthProvider.kakao or OAuthProvider.keycloak. -
signInWithOtp(
{String? email, String? phone, String? emailRedirectTo, bool? shouldCreateUser, Map< String, dynamic> ? data, String? captchaToken, OtpChannel channel = OtpChannel.sms}) → Future<void> - Log in a user using magiclink or a one-time password (OTP).
-
signInWithPassword(
{String? email, String? phone, required String password, String? captchaToken}) → Future< AuthResponse> - Log in an existing user with an email and password or phone and password.
-
signOut(
{SignOutScope scope = SignOutScope.local}) → Future< void> - Signs out the current user, if there is a logged in user.
-
signUp(
{String? email, String? phone, required String password, String? emailRedirectTo, Map< String, dynamic> ? data, String? captchaToken, OtpChannel channel = OtpChannel.sms}) → Future<AuthResponse> - Creates a new user.
-
startAutoRefresh(
) → void - Starts an auto-refresh process in the background. Close to the time of expiration a process is started to refresh the session. If refreshing fails it will be retried for as long as necessary.
-
stopAutoRefresh(
) → void - Stops an active auto refresh process running in the background (if any).
-
toString(
) → String -
A string representation of this object.
inherited
-
unlinkIdentity(
UserIdentity identity) → Future< void> - Unlinks an identity from a user by deleting it.
-
updateUser(
UserAttributes attributes, {String? emailRedirectTo}) → Future< UserResponse> - Updates user data, if there is a logged in user.
-
verifyOTP(
{String? email, String? phone, String? token, required OtpType type, String? redirectTo, String? captchaToken, String? tokenHash}) → Future< AuthResponse> - Log in a user given a User supplied OTP received via mobile.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited