Enr*_* R. 9 ios app-transfer firebase-authentication apple-sign-in
作为应用程序收购的一部分,我们正在将一款应用程序从一个 Apple 开发者帐户转移到另一个帐户。该应用程序使用 Apple Sign in 和 Firebase 身份验证,并且似乎需要完成几个与为使用 Apple Sign in 注册的用户生成传输标识符相关的步骤。这在此处记录:
但是,由于我们使用 Firebase 作为应用程序的后端,因此我们无法直接控制身份验证过程和 Apple 登录生成的用户 ID、它们如何存储在 Firebase Auth 中以及如何在应用程序传输后更新它们。
关于如何生成转移标识符的文档也很混乱,因为不清楚是否需要为所有用户生成转移标识符,以及如果用户在他们提到的 60 天内没有登录应用程序该怎么办转移后。
如果有人以前遇到过这个问题,我们将非常感谢您提供一些关于如何实现这一目标的建议。非常感谢!!
小智 6
我不完全理解您关于 firebase 令牌的问题。
在我的系统中,我将每个设备的用户标识符和 firebase 令牌存储到数据库中。有些东西,就像下面这样...
[id], [userid], [appleUserId], [firebaseToken]
0001, xxxxx, 000625.9cc9a4be8d0c4axxxxxxxxxxxxxxxxxx.xxxx, c9ujMuHrc0f3keNzd1x1ae:APA91bHp......
0002, yyyyy, 001429.9ca6469bfab94xyyyyyyyyyyyyyyyyyy.yyyy, eUiInpEyekdlr10GWshvHu:APA91bHV......
Run Code Online (Sandbox Code Playgroud)
因此,转移应用程序后,我只需要迁移 appleUserId 即可。
关于如何生成转移标识符的文档也很混乱,因为不清楚是否需要为所有用户生成转移标识符,以及如果用户在他们提到的 60 天内没有登录应用程序该怎么办转移后。
我完全同意你的观点,这很令人困惑。
无论如何,这是迁移 appleUserId 的步骤。
由于只有1000个用户使用apple登录我的系统。我创建了一个 bash 脚本,调用 API 来一一转换用户 ID。
这是我检索“传输标识符”的脚本。
#!/bin/bash
generateTransferIdFunc() {
APIURL="https://appleid.apple.com/auth/usermigrationinfo"
recipientTeamId=7253******
senderAppBundleID=com.test.app
senderSecret=eyJraWQiOiJBQTQ4NkJaWTUyIiw.........
if [ $# -eq 1 ] && [ -f $1 ]
then
OLDIFS=$IFS
IFS=","
while read oid userid email
do
echo "Start retrieving trasfer_sub for : $userid, $email"
curl -sS --location --request POST $APIURL \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer ae42b9xxxxxxxxxxxxxxxxxxxxxxxxxxx.0.xxxxx.4xxxxxxxxxxxxxxxxxxxxx' \
-d "sub=$userid&target=$recipientTeamId&client_id=$senderAppBundleID&client_secret=$senderSecret"
echo ""
echo "End."
done < $1
IFS=$OLDIFS
else
echo "Input file not found!"
fi
}
if [ $# -eq 1 ] && [ -f $1 ]
then
generateTransferIdFunc $1 | while IFS= read -r line; do printf '%s %s\n' "$(date '+%Y-%m-%d %H:%M:%S.%N')" "$line"; done | tee -a generateTransferId.log
else
echo "Input file not found!"
fi
Run Code Online (Sandbox Code Playgroud)
注意:senderSecret 由 JWT 生成。请参阅https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003
您可以通过以下方式运行脚本
sh generate_transfer_identifier.sh input.csv
Run Code Online (Sandbox Code Playgroud)
这是示例 input.csv
oid,appleId,email
129914891,001870.1ffcf5**************************.0729,a********@privaterelay.appleid.com
129985693,001559.8322cd**************************.0728,b********@privaterelay.appleid.com
Run Code Online (Sandbox Code Playgroud)
然后您将收到每个用户的“转移标识符”。
之后,您可以使用“转移标识符”来检索与接收者团队一起使用的新用户 ID。请阅读这篇文章,将“转移标识符”转换为新的用户 ID。 https://developer.apple.com/documentation/sign_in_with_apple/bringing_new_apps_and_users_into_your_team
注:您可以修改上述脚本,调用API进行转换。
最后,您将收到新的用户 ID。然后您只需将用户 ID 更新到数据库中即可。
我希望以上信息对您有用。
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |