簡體   English   中英

Xamarin Forms Firebase Auth OAuth sign in for Apple, Microsoft, Twitter, ...?

[英]Xamarin Forms Firebase Auth OAuth sign in for Apple, Microsoft, Twitter, ...?

For Google sign in I used their SDK, but Firebase supports Apple (and others) over OAuth and I'm not sure how to translate their examples to Xamarin Forms.

Xamarin.Essentials提供對 Apple 登錄的支持,但僅在iOS上。 使用 Firebase 它的工作方式如下:

if (!UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
    throw new AppleSignInCanceledException("Apple sign in requires iOS 13+, sorry.");

var signInResult = await AppleSignInAuthenticator.AuthenticateAsync();
var credential = OAuthProvider.GetCredential("apple.com", signInResult.IdToken, signInResult.AccessToken);
var authResult = await Auth.DefaultInstance.SignInWithCredentialAsync(credential);
AuthToken = await authResult.User.GetIdTokenAsync();

Android 上,您可以使用這種簡單的方法,它使用瀏覽器 window:

var provider = OAuthProvider.NewBuilder("apple.com");
await FirebaseAuth.Instance.StartActivityForSignInWithProvider(MainActivity.SharedInstance, provider.Build());
var result = await FirebaseAuth.Instance.CurrentUser.GetIdToken(false);
AuthToken = (result as GetTokenResult)?.Token;

這也適用於 Microsoft、Twitter 和 Firebase 支持的其他提供商。

iOS上,OAuth 實現可能如下所示(未經測試,請發表評論):

var provider = OAuthProvider.Create("microsoft.com");
var authResult = await Auth.DefaultInstance.SignInWithProviderAsync(provider, null);
AuthToken = await authResult.User.GetIdTokenAsync();

有什么改進嗎? 我很高興收到你的來信。 或者您正在尋找Google 實施

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM