Sign In with Device

Our Flutter SDK offers the easiest way to integrate Cotter's Sign In with Device. You can simply call a function and it does most of the heavy lifting and authentication for you.

What you're building

Sign In with Device using Cotter's Flutter SDK

Import Cotter as a dependency

Add Cotter to your pubspec.yaml , then run flutter pub get.

dependencies:
cotter:

Check the latest releases in pub.dev. You may need to restart your flutter for it to run pod install (stop flutter run and re run it).

Step 1: Import and Initialize Cotter

Import Cotter in your lib/main.dart, then initialize it inside HomePageState.

import 'package:cotter/cotter.dart'; // Import Cotter
โ€‹
class HomePageState extends State {
...
โ€‹
// 1๏ธโƒฃ Initialize Cotter
Cotter cotter = new Cotter(apiKeyID: API_KEY_ID); // ๐Ÿ‘ˆ Specify your API KEY ID here
โ€‹
// 2๏ธโƒฃ TODO: Make Sign Up Function
// 3๏ธโƒฃ TODO: Make Login Function
Widget build(BuildContext context) { ... }
}

You can create a free account at Cotter to get your API_KEY_ID.

Make sure you allow Trusted Devices Method in the dashboard.

Step 2: Make a Sign Up Function

To sign up, call cotter.signUpWithDevice and input the user's email. This will create a new user in Cotter and trust the current device to allow logins. This function returns the User object.

// 2๏ธโƒฃ Make Sign Up Function
void signUp(BuildContext context) async {
try {
// ๐Ÿš€ One-line Sign Up
// Create a new user in Cotter and trust the current device
var user = await cotter.signUpWithDevice(identifier: inputController.text);
print(user);
} catch (e) {
print(e);
}
}

(Optional) You can also verify the user's email or phone number at this step

To verify the user's email or phone number, follow this guide after you've finished this one.

Step 3: Make a Login Function

To sign in, call cotter.signInWithDevice . If the user is logging-in from a device that they trust, they'll automatically be approved. This function returns the Event object.

// 3๏ธโƒฃ Make Login Function
void login(BuildContext context) async {
try {
// ๐Ÿš€ One-line Login
var event = await cotter.signInWithDevice(identifier: inputController.text, context: context);
print(event);
} catch (e) {
print(e);
}
}

Logging-in From a Trusted Device

If the user logged-in from a trusted device, their login request will automatically be approved.

Logging-in From a Non-Trusted Device

If the user logged-in from a different device that is not trusted, they will be presented with a prompt asking them to approve the login from their trusted phone inside your app. We'll cover this in the next guide.

๐ŸŽ‰ You're done!

Add Email/Phone Verification

You can also verify your user's email or phone number during the sign up process.

Getting the Logged-in User

Cotter's SDK automatically saves the logged-in user in your device's secure storage. Check out how to get the user information:

Getting OAuth Tokens

Cotter also automatically generates an access_token, id_token , and refresh_token that is securely stored in the device's secure storage. Check how to get these tokens: