-
Notifications
You must be signed in to change notification settings - Fork 653
Description
Setup
We have a React Native mobile app that opens a Next.js web app for authentication (similar to Auth0). The web app uses Thirdweb's inAppWallet for social logins:
inAppWallet({
auth: {
options: ["email", "passkey", "google", "apple", "facebook"],
},
})After login, we read the user's profile using useProfiles() / getProfiles().
Problem
When a user signs in with Google, profile.details includes name and picture:
{ "type": "google", "details": { "id": "...", "email": "user@gmail.com", "name": "John Doe", "picture": "https://..." } }When a user signs in with Apple, profile.details only has id and email — name is missing:
{ "type": "apple", "details": { "id": "001234.abc...", "email": "privaterelay@icloud.com" } }This is causing our Apple App Store rejection (Guideline 4.8) because Apple requires that Sign in with Apple users have a proper display name.
Why I think this is a backend issue
The SDK passes through whatever the backend returns as-is (getUser.ts line ~121, linkAccount.ts line ~56). So the data gap is on the backend (embedded-wallet.thirdweb.com), not in the SDK.
Apple sends the user's full name only on the first authorization. If the backend doesn't capture and persist it at that moment, it's permanently lost.
Ask
- Does the embedded wallet backend capture Apple's
fullNameon first authorization? - If not, could this be added? It's critical for App Store compliance.
- Minor: the
Profiletype could add optionalname?andpicture?fields to match what Google already returns at runtime.
Environment
- SDK:
thirdweb@5.118.1 - Auth:
inAppWalletwithstrategy: "apple" - Platform: Next.js 15 (web) + React Native (mobile)