cotter 0.0.1 copy "cotter: ^0.0.1" to clipboard
cotter: ^0.0.1 copied to clipboard

outdated

Flutter SDK for Cotter's Passwordless Authentication Service.

cotter #

A Flutter SDK for Cotter's Authentication Services. This package helps you add passwordless login to your app using the following methods:

  • Sign in with device
  • Sign in with email
  • Sign in with phone number

Getting Started #

As mentioned, there are 3 different ways to authenticate users. You can also combine the authentication methods, for example: Register the user after verifying their emails, then use Sign in with device for subsequent logins.

To use this SDK, you can create a free account at Cotter to get your API keys.

Sign in with device #

Signing in with device works like Google Prompt. It allows users to sign in to your website or app automatically from a device that they trust, or in one-tap by approving the login request from your app.

Signing Up #

To register a new user, we need to create a new user in Cotter and register the current device as trusted.

Cotter cotter = new Cotter(apiKeyID: API_KEY_ID);
try {
  var user =
          await cotter.signUpWithDevice(identifier: emailAddress);
} catch(e) {
  print(e);
}

Signing In #

To authenticate your user, the SDK will check and verify if the current device is trusted. If it is trusted, users can sign in automatically.

Cotter cotter = new Cotter(apiKeyID: API_KEY_ID);
try {
  var event = await cotter.signInWithDevice(
    identifier: emailAddress,
    context: context,
  );
} catch(e) {
  print(e);
}
if (event.approved) {
  _goToDashboard();
}

Signing in from a Trusted Device

If the user signed-in from a trusted device, the event will automatically be approved and the user can proceed to the dashboard.

Signing in from a Non-Trusted Device

Otherwise, the SDK will show a prompt that asks the user to approve the login from the device that they trust. Inside your app in the trusted device, the SDK will show a prompt asking if the user want to approve the login.

// Show prompt to approve the login from the trusted device
Cotter cotter = new Cotter(apiKeyID: API_KEY_ID);
try {
  var user = await cotter.getUser();
  var event = await user.checkNewSignInRequest(context: context);
} catch(e) {
  print(e);
}

Getting the logged-in user #

The SDK automatically stores OAuth tokens (access token, id token, and refresh token) in the device's secure storage, along with the user information.

To get the logged-in user information:

Cotter cotter = new Cotter(apiKeyID: API_KEY_ID);
try {
  var user = await cotter.getUser();
} catch(e) {
  print(e);
}

Getting OAuth Tokens #

The SDK can fetch stored tokens for you and refresh them as needed if they're expired.

Cotter cotter = new Cotter(apiKeyID: API_KEY_ID);
try {
  var accessToken = await cotter.getAccessToken();
  var idToken = await cotter.getIDToken();
  var refreshToken = await cotter.getRefreshToken();
} catch (e) {
  print(e);
}
8
likes
0
pub points
39%
popularity

Publisher

unverified uploader

Flutter SDK for Cotter's Passwordless Authentication Service.

Homepage

License

unknown (LICENSE)

Dependencies

async, cryptography, device_info, email_validator, flutter, flutter_secure_storage, http, jose, meta

More

Packages that depend on cotter