Ioni c 4 Войти с Apple - PullRequest
       6

Ioni c 4 Войти с Apple

3 голосов
/ 17 января 2020

Пожалуйста, не могли бы вы мне помочь? Я хочу добавить Вход с помощью ioni c 4, но без документации я нашел только это https://www.npmjs.com/package/cordova-plugin-sign-in-with-apple, но почему-то я не смог его использовать.

Большое спасибо

Ответы [ 2 ]

4 голосов
/ 19 января 2020

import { SignInWithApple, AppleSignInResponse, AppleSignInErrorResponse, ASAuthorizationAppleIDRequest } from '@ionic-native/sign-in-with-apple/ngx';


  constructor(private signInWithApple: SignInWithApple) { }


    this.signInWithApple.signin({
      requestedScopes: [
        ASAuthorizationAppleIDRequest.ASAuthorizationScopeFullName,
        ASAuthorizationAppleIDRequest.ASAuthorizationScopeEmail
      ]
    })
    .then((res: AppleSignInResponse) => {
      // https://developer.apple.com/documentation/signinwithapplerestapi/verifying_a_user
      alert('Send token to apple for verification: ' + res.identityToken);
      console.log(res);
    })
    .catch((error: AppleSignInErrorResponse) => {
      alert(error.code + ' ' + error.localizedDescription);
      console.error(error);
    });
1 голос
/ 31 января 2020

Пример, если вы также используете Firebase

Установить собственный плагин

npm i --save @ionic-native/sign-in-with-apple

В вашем приложении

import {
  SignInWithApple,
  AppleSignInResponse,
  AppleSignInErrorResponse,
  ASAuthorizationAppleIDRequest
} from '@ionic-native/sign-in-with-apple';

constructor(private afAuth: AngularFireAuth) {}

async nativeAppleAuth(): Promise<void> {
  try {
    const appleCredential: AppleSignInResponse = await SignInWithApple.signin({
      requestedScopes: [
        ASAuthorizationAppleIDRequest.ASAuthorizationScopeFullName,
        ASAuthorizationAppleIDRequest.ASAuthorizationScopeEmail
      ]
    });
    const credential = new firebase.auth.OAuthProvider('apple.com').credential(
      appleCredential.identityToken
    );
    const response = await this.afAuth.auth.signInWithCredential(credential);
    console.log('Login successful', response);
  } catch (error) {
    console.log(error);
  }
}
...