Sign In With Apple
npm install @nativescript/apple-sign-inA plugin that allows you to authenticate users with Sign In with Apple.
``cli`
npm install @nativescript/apple-sign-in
1. Go to the Apple developer 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.
2. Add the Sign In with Apple Entitlement to App_Resources/iOS/app.entitlements.
Then add the Sign In with Apple Entitlement to App_Resources/iOS/app.entitlements as follows:`xml`
Sign In with Apple was added in iOS 13. So, to check if it is supported on the device, call the static isSupported() method on SignIn.
On iOS < 13 and on Android, isSupported() returns false.
`typescript
import { SignIn } from "@nativescript/apple-sign-in";
const supported: boolean = SignIn.isSupported();
`
If Sign In with Apple is supported on the device, you can present the user with that option to sign in.
`typescript
SignIn.signIn(
{
scopes: ["EMAIL", "FULLNAME"]
})
.then((result: User) => {
console.log("Signed in, user: " + result);
console.log("Signed in, familyName: " + result.fullName.familyName);
this.user = result.user;
})
.catch(err => console.log("Error signing in: " + err));
`
To get the current Sign In status of a user, call the getState() passing it the user id(User.user) obtained from signIn() method.
`typescript
import { SignIn } from "@nativescript/apple-sign-in";
const user: string = User.user;
SignIn.getState(user)
.then(state => console.log("Sign in state: " + state))
.catch(err => console.log("Error getting sign in state: " + err));
`
`ts`
isSupported: boolean = SignIn.isSupported();true
Checks if Sign In with Apple is supported on the device. Returns for iOS 13+, and false for iOS < 13 and on Android.
---
ts
SignIn.signIn(
options: SignInOptions )
.then((result: User) => {
// handle the signed-in user data
})
.catch(err =>{
// handle error
});
`Signs in a user with the specified SignInOptions object.
---
$3
`ts
SignIn.getState(userID:string)
.then(state =>{
// do something with user status
})
.catch(err =>{
// handle error
});
`
Gets the current sign-in status of the user.---
$3
| Name | Type | Description |
|------|------|-------------|
|
user | string | For the description, visit user.|
| scopes | SignInScopes[] | _Optional_: By default, signIn() does not return any user's scopes. To return the scopes of interest, list them in the scopes array.
| useOnce | boolean | |
| nonce | string| _Optional_: See nonce for more information. |
$3
`ts
type SignInScopes = "EMAIL" | "FULL_NAME";
`
For more details, visit ASAuthorizationScope.---
$3
The following are the properties of the User object returned by the signIn() method.
| Name | Type | Description |
|------|------|-------------|
|
nonce| string| _Optional_: See nonce for more information. |
| user | string | _Always Provided_|
| fullName | UserFullName | _Optional_ |
| realUserStatus | UserDetectionStatus | _Optional_ |
| authorizedScopes | SignInScopes | _Optional_ |
| identityToken | string | _Optional_ |
| email | string | _Optional_ |
| identityToken | string | _Always Provided_|
| state | string | _Always Provided_|
| authorizationCode | string | _Optional_ |For more details, visit ASAuthorizationAppleIDCredential.
---
$3
| Name | Type | Description |
|------|------|-------------|
| namePrefix| string| _Optional_ |
| givenName | string | _Optional_ |
| middleName | string | _Optional_ |
| familyName | string | _Optional_ |
| nameSuffix | string | _Optional_ |
| nickname | string | _Optional_ |For more details, visit NSPersonNameComponents.
---
$3
`ts
enum CredentialState {
Revoked = 'Revoked',
Authorized = 'Authorized',
NotFound = 'NotFound',
Transferred = 'Transferred'
}
`For more details, visit ASAuthorizationAppleIDProviderCredentialState.
---
$3
`ts
enum UserDetectionStatus {
Unsupported = 'Unsupported',
Unknown = 'Unknown',
LikelyReal = 'LikelyReal'
}
``For more details, visit ASUserDetectionStatus.
Apache License Version 2.0