如何在 Ionic 3 应用程序中启用"Sign in with Apple Id"



我有一个现有的Ionic 3应用程序,允许用户使用他们的Facebook或Google帐户登录。 该应用程序与 ASP.NET 核心网站和 API 交互。我的理解是,在某些时候,苹果会要求这样的应用程序支持"使用苹果登录"。

在Facebook和Google中,有cordova插件(facebook4和googleplus(,然后是一些服务器端代码来处理OAuth/OpenID Connect。 我没有找到任何"使用 Apple 登录"的科尔多瓦插件。我找到了一篇关于如何实现 api/web 方面的文章,但是我在 Ionic 方面不太清楚。如何在基于 ionic 的 iOS 应用程序中启用"使用 Apple 登录"? 是否不需要插件(即都可以使用 javascript 或应用内浏览器完成(? 我知道应用内浏览器被谷歌的身份验证页面阻止了,似乎任何身份验证都首选更"原生"的方法。

我知道这是新的,但如果苹果开始需要它,似乎更多的开发人员会遇到这个问题。 我是否误解了即将需要的?

你可以使用这个离子包装器: https://www.npmjs.com/package/@ionic-native/sign-in-with-apple

安装插件和包装器:

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

进口:

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

使用示例(使用火力底座(:

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

这个插件似乎有效:cordova-plugin-apple-login

这个插件打开了苹果的 iOS sigin。对用户进行身份验证后,您将收到包含用户 ID 和授权代码的响应。您可以将授权代码发送到后端并验证用户。

由于此插件没有ionic-native-wrapper,因此您需要添加以下内容才能使用该插件:

declare var SignInWithApple: any;

最新更新