Plugins
Apple Signin
@nativescript/apple-sign-in
A plugin that allows you to authenticate users with Sign In with Apple.
Installation
npm install @nativescript/apple-sign-inRequirements
Go to the Apple developer and create a new app identifier with the
Sign In with AppleCapability enabled. Make sure you sign your app with a provisioning profile using that app identifier.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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>Use @nativescript/apple-sign-in
Check if Sign In with Apple is supported
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.
import { SignIn } from '@nativescript/apple-sign-in'
const supported: boolean = SignIn.isSupported()Sign In With Apple
If Sign In with Apple is supported on the device, you can present the user with that option to sign in.
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))Get a user's sign in status
To get the current Sign In status of a user, call the getState() passing it the user id(User.user) obtained from signIn() method.
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))API
isSupported
isSupported: boolean = SignIn.isSupported()Checks if Sign In with Apple is supported on the device. Returns true for iOS 13+, and false for iOS < 13 and on Android.
signIn()
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.
getState()
SignIn.getState(userID:string)
.then(state =>{
// do something with user status
})
.catch(err =>{
// handle error
});Gets the current sign-in status of the user.
SignInOptions
| 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. |
SignInScopes
type SignInScopes = 'EMAIL' | 'FULL_NAME'For more details, visit ASAuthorizationScope.
User object
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.
UserFullName interface
| 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.
CredentialState enum
enum CredentialState {
Revoked = 'Revoked',
Authorized = 'Authorized',
NotFound = 'NotFound',
Transferred = 'Transferred',
}For more details, visit ASAuthorizationAppleIDProviderCredentialState.
UserDetectionStatus enum
enum UserDetectionStatus {
Unsupported = 'Unsupported',
Unknown = 'Unknown',
LikelyReal = 'LikelyReal',
}For more details, visit ASUserDetectionStatus.
License
Apache License Version 2.0
- Previous
- App Availability
- Next
- Auto Fit Text
