final FirebaseAuth auth = FirebaseAuth.instance;
final OAuthProvider provider = OAuthProvider('microsoft.com');
// Необязательно: укажите дополнительные настраиваемые параметры OAuth, которые вы хотите отправить с запросом OAuth.
provider.setCustomParameters({
'prompt': 'consent',
'login_hint': 'user@firstadd.onmicrosoft.com'
});
// Необязательно: укажите дополнительные области OAuth 2.0 помимо базового профиля, которые вы хотите запросить у поставщика проверки подлинности.
provider.addScope('mail.read');
provider.addScope('calendars.read');
// Аутентифицирует клиента Firebase с помощью потока аутентификации OAuth на основе всплывающих окон.
UserCredential user = await auth.signInWithPopup(provider);
// Или аутентифицирует клиента Firebase с помощью потока перенаправления на всю страницу.
await auth.signInWithRedirect(provider);
UserCredential user = await auth.getRedirectResult();
// В дальнейшем вам нужно запомнить AuthCredential из UserCredential.credential и использовать его для аутентификации
UserCredential user = await auth.signInWithCredential(credential);
User user = await FirebaseAuthOAuth().openSignInFlow(
"microsoft.com", ["email openid"], {'tenant': 'your-tenent-id'});
// Или вы можете связать существующего вошедшего в систему пользователя
User user = await FirebaseAuthOAuth()
.linkExistingUserWithCredentials("microsoft.com", ["email openid"], {'tenant': 'your-tenent-id'});
根据文档,您可以这样做(仅适用于 Flutter Web):
对于 Flutter Android/iOS,您必须使用firebase_auth_oauth插件: