Flutter Sign In With AppleId

本文最后更新于:2025年5月23日 晚上

使用插件和文档:sign_in_with_apple

1. develop开发者账号和Flutter项目

ios的Identifiers记得要加上Sign In with Apple capability;

key和Service ID仅在Web或Android集成时需要。如果只打算在iOS上集成,那就不需要配置;
因为ios端会自动和apple服务器连接验证信息,只有使用android和web端的apple id登录才需要配置service id(里面有回调地址),为了和apple服务器通信验证身份,所以才需要key。

ios在xcode工程里面要加上Sign In with Apple capability;

2. 注意事项:

1、如果你要使用android和web端的apple id登录才需要配置service id,如果仅仅是ios端,那就不需要。

2、只有第一次登录(完全授权)才能返回userIdentifier,familyName,givenName,email这些全部信息,再次点击就没有familyName,givenName,email这几项了,真烦啊,所以你要在第一次登录时后台存一下这些数据,然后按照userIdentifier找找是不是已存在;

如果你还想再模拟第一次授权登录,在https://appleid.apple.com/网站,登录和安全—通过appleid登录这里删掉你授权的app,就可以了。

3、如果用户选择隐藏email,会返回一个代理邮箱,用户还可以更换实际的familyName,givenName。

3. 示例

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void appleIdLogin() async {
final credential = await SignInWithApple.getAppleIDCredential(
scopes: [
AppleIDAuthorizationScopes.email,
AppleIDAuthorizationScopes.fullName,
],
);
// SignInWithApple.
print(credential.userIdentifier);
print(credential.familyName);
print(credential.givenName);
print(credential.email);
print(credential.authorizationCode);
print(credential.identityToken);
print(credential.state);
}


Flutter Sign In With AppleId
http://bestkele.com/2024/02/21/flutter/flutter-signInWithApple/
作者
kele
发布于
2024年2月21日
许可协议