nativescript-apple-sign-in
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

Sign In with Apple, for NativeScript

NPM version Downloads Twitter Follow

Plugin version 2+ is compatible with NativeScript 7+. If you use an older NativeScript version, please use plugin version 1.1.0.

Requirements

  • Go to the Apple developer website and create a new app identifier with the "Sign In with Apple" Capability enabled. Make sure you sign your app with a provisioning profile using that app identifier.
  • Open your app's App_Resources/iOS folder and add this (or append) to a file named app.entitlements.

Installation

tns plugin add nativescript-apple-sign-in

Demo app

If you're stuck or want a quick demo of how this works, check out the demo app:

git clone https://github.com/EddyVerbruggen/nativescript-apple-sign-in
cd nativescript-apple-sign-in/src
npm run demo.ios

API

isSignInWithAppleSupported

Sign In with Apple was added in iOS 13, so make sure to call this function before showing a "Sign In with Apple" button in your app. On iOS < 13 and Android this will return false.

import { isSignInWithAppleSupported } from "nativescript-apple-sign-in";
 
const supported: boolean = isSignInWithAppleSupported();

signInWithApple

Now that you know "Sign In with Apple" is supported on this device, you can have the user sign themself in (after they pressed a nice button for instance).

import { signInWithApple, SignInWithAppleAuthorization } from "nativescript-apple-sign-in";
 
signInWithApple(
    {
        // by default you don't get these details, but if you provide these scopes you will (and the user will get to choose which ones are allowed)
        scopes: ["EMAIL", "FULLNAME"]
    })
    .then((result: SignInWithAppleAuthorization) => {
        console.log("Signed in, credential: " + result.credential);
        console.log("Signed in, familyName: " + result.credential.fullName.familyName);
        // you can remember the user to check the sign in state later (see 'getSignInWithAppleState' below)
        this.user = result.credential.user;
    })
    .catch(err => console.log("Error signing in: " + err));

getSignInWithAppleState

⚠️ This does not seem to work on a simulator!

If you want to know the current Sign In status of your user, you can pass the user (id) you acquired previously.

import { getSignInWithAppleState } from "nativescript-apple-sign-in";
 
const user: string = "the id you got back from the signInWithApple function";
 
getSignInWithAppleState(user)
    .then(state => console.log("Sign in state: " + state))
    .catch(err => console.log("Error getting sign in state: " + err));

Package Sidebar

Install

npm i nativescript-apple-sign-in

Weekly Downloads

42

Version

2.0.0

License

Apache-2.0

Unpacked Size

25.3 kB

Total Files

10

Last publish

Collaborators

  • eddyverbruggen