
Hey all! I was trying to implement 'Sign in with Apple' in my native iOS app. Enabling Apple as an OAuth provider right now involves redirecting the user to a apple sign in page based on a Return URL. The SignInWithAppleButton available for SwiftUI takes in a request and returns an authentication result with the user credentials such as name and email and assigns a user ID. This method doesn't redirect the user outside the app. Instead, uses the user's Apple ID for details and biometrics or passkey for authentication in the app itself.
Is there a way to implement this button currently in auth so that it creates a new user in the Users table of the Appwrite project based on the result and credentials received?
SignInWithAppleButton(.signIn) { request in
request.requestedScopes = [.email, .fullName]
} onCompletion: { result in
switch result {
case .success(let auth):
switch auth.credential {
case let authCredential as ASAuthorizationAppleIDCredential:
// Crete a new user with the received credentials.
let name = authCredential.fullName
default:
break
}
case .failure(let error):
print(error.localizedDescription)
}
}
Any ideas as to how I could make this work? Would love to contribute too if anything is in the works 🙂

To use our oauth integration with apple, you'll have to authenticate via our flow.
You can 👍 this related issue: https://github.com/appwrite/appwrite/issues/2611

Thanks for the reference! I'm just thinking out loud here, but would creating a manual users table where users are added manually and then adding document level rules for it be a good idea? Would love to know your opinion on this. Thanks for your response 😄

I don't think you can create document level rules like that.
Have you tried using Appwrite's oauth instead of the apple sign in button?

Yes, I am using email as an option for authentication. Was just wondering about sign in with apple as including any social logins on iOS requires having an sign in with apple option as well.

That would just be styling it to look the same

Ahhh. Okay thank you so much for your help! I'll look into it this way
Recommended threads
- Unable to get account or logout after a ...
I get the following error after a successful login when ever I call account.get() or account.deleteSession(sessionId: "current"). User (role: guests) missing sc...
- OAuth2 with IPhone When users enables "H...
I am using Appwrite OAuth2 to authenticate users in my app (Flutter) Normally, I am using the user's email for the authentication, when he first registers , and...
- iOS Sign in with Apple error: signup not...
I can’t get Sign in with Apple to work for my iOS app. I followed the instructions on https://appwrite.io/integrations/oauth-apple very closely and multiple tim...
