Nee*_*raj 5 dart social-authentication flutter
我想在我的 flutter 应用程序中与 Google 和 Facebook 一起提供 Microsoft 身份验证。我找到了 Google 和 Facebook 的文档,但找不到 Microsoft auth 的任何资源或文档。任何帮助都将非常重要。
小智 1
抱歉,如果这个答案迟到了,它可能会帮助其他面临同样问题的人。我遵循了一种简单的技术来克服 Microsoft 身份验证,最后您将收到用户邮件 ID 以及声明应用程序时根据权限设置的其他详细信息。
有一个flutter包https://pub.dev/packages/flutter_web_auth
在继续之前,您需要向 Azure Active Directory 注册应用程序https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/CreateApplicationBlade/isMSAApp~/false
配置flutter登录方式
final url = Uri.https('login.microsoftonline.com', '/your-tenant ID/oauth2/v2.0/authorize', {
'response_type': 'token',
'client_id': 'your Client ID',
'redirect_uri': redirectUrl,
'scope': 'https://graph.microsoft.com/openid',
});
// This method will return the authorization code which needs to exchanged for user details
final result = await FlutterWebAuth.authenticate(url: url.toString(), callbackUrlScheme: redirectUrl);
// Extract code from resulting url
Run Code Online (Sandbox Code Playgroud)
您可以根据安全级别获取访问代码或令牌。更多解释可以在以下位置找到: https://learn.microsoft.com/en-us/azure/active-directory/develop/app-sign-in-flow
对于我的方法,我从 Azure AD 获取令牌并与此 API 交换以获取用户详细信息
final details = await http.get(Uri.parse("https://graph.microsoft.com/oidc/userinfo"),
headers: {
"Authorization" : "Bearer "+accessCode,
});
Run Code Online (Sandbox Code Playgroud)
您可以使用这些详细信息来验证用户身份并启用功能。在 Azure AD 中,您可以定义谁可以使用登录机制,例如组织或常规。
希望这可以帮助。