Cotter's Passwordless SDK authenticates your user based on their device. It allows a seamless, fast, and secure way for your user to login to your React Native App.
Sign in with Device
In this guide we'll allow users to Sign In with Device using Cotter's SDK.
Make sure you're using react-native version < 0.63
This method signUpWithDevice will register the user based on the user's identifier to Cotter and then trust the current device.
import { Cotter } from"react-native-cotter";constregister= (identifier) => {// Signup the user and trust this devicevar cotter =newCotter(API_KEY_ID);cotter.signUpWithDevice( identifier,// User's email, phone or username (response) => {console.log(response)},// OnSuccess function (error) => {console.log(error)},// OnError function );};
// Returns the newly created User object in Cotter// along with oauth tokens{"ID": "cccccccc-cccc-cccc-cccc-cccccccccccc","client_user_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb","created_at": "2020-06-09T03:50:04.005779Z","default_method": "TRUSTED_DEVICE","deleted_at": null,"enrolled": ["TRUSTED_DEVICE" ],"identifiers": ["hello@cotter.app" ],"issuer": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","oauth_token": {"access_token":"eyJhbGciOi...","auth_method":"TRUSTED_DEVICE","expires_in":3600,"id_token":"eyJhbGciOiJFU...","refresh_token":"6177:MufdKMIk2XP...","token_type":"Bearer" },"update_at": "2020-06-09T03:50:04.77575278Z"}
Step 4️: Logging In from a Trusted Device
Use the signInWithDevice method to login with the same identifier as the one registered above.
import { Cotter } from"react-native-cotter";constlogin= (identifier) => { var cotter =newCotter(API_KEY_ID);cotter.signInWithDevice( identifier,// User's email, phone or username (response) => {console.log(response)},// OnSuccess function (error) => {console.log(error)},// OnError function );}
{"ID": 1361,// Event ID"CreatedAt": "2020-02-27T22:22:48.705212512Z","UpdatedAt": "2020-02-27T22:22:48.705212512Z","DeletedAt": null,"client_user_id": "1014",// your client's User ID"issuer": "afcabd98-745f-4b9e-98de-af968d9951d3",// your API Key"event": "<EVENT NAME>",// requested event (LOGIN, or TRANSACTION, etc)"ip": "192.168.232.2","location": "Unknown","timestamp": "1582842167","method": "TRUSTED_DEVICE",// auth method: TRUSTED_DEVICE (other choices are PIN / BIOMETRIC)"new": false,// Is this a new pending event. More explanation below about Non-Trusted Device"approved": true,// Is this event approved."signature": "oonMGCAxp3..."// Signature to make sure this event comes from Cotter's server}
🎉 You're Done
Now you can allow your users to Sign In with Device with just 1 tap. When your sessions expires, you can also Sign In User Silently by just calling the method signInWithDevice above.
Find a more detailed version of this guide in our Trusted Devices section