【问题标题】:Xamarin Forms OAuth2 Microsoft/Google authenticationXamarin Forms OAuth2 Microsoft/Google 身份验证
【发布时间】:2018-01-21 01:29:46
【问题描述】:

我正在构建一个应该能够发送电子邮件的应用程序。我正在使用 OAuth2 来验证用户,并且我查看了 Xamarin Forms Sample,它在设置后与 gmail 配合得很好。 但是它不适用于我的 Microsoft 帐户。

我在 Microsoft 上创建了一个 cliendId 和所有这些东西。我是否也必须拥有 Azure AD?

我正在调用身份验证:

new OAuth2Authenticator(
                "myClientId",
                "User.Read",
                new Uri("https://login.live.com/oauth20_authorize.srf?client_id=myid&scope=user.read&response_type=token&redirect_uri=https://login.live.com/oauth20_desktop.srf"),
                new Uri("myRedirectUri"),
                null,
                true);

但是我到达一个屏幕说:我们无法执行您的请求。 Microsoft 帐户现在遇到技术问题。请稍后再试。

查看了this 示例,作者以类似的方式使用 Google 和 Microsoft 帐户。

如果我改用this 示例,它适用于原始设置,但如果我更改为我自己的clientId 和redirectUrl,则不能。这是因为我没有任何 Azure 帐户吗? 不想花钱买它,而且由于第一种方法适用于我的 gmail,我希望它也适用于 Microsoft。

/奥利弗

【问题讨论】:

  • 你注册你的应用了吗?有必要获取 redirectUri 等。 docs.microsoft.com/en-us/azure/active-directory/develop/… "对于移动应用,请复制自动为您创建的默认重定向 uri。"如果您有 Microsoft 帐户,则不需要 Azure AD 帐户。它说“至少以下帐户之一:Microsoft 帐户一个 Azure AD 帐户”
  • 是的,我已经注册了我的应用程序。一直在使用自定义的重定向 uri,而不是内置的,如果这有什么不同的话。
  • 你知道我在范围和授权网址上做得是否正确吗?
  • 我怎么知道你是否做对了?
  • 认为您可能一直在使用 OAuth2 并识别语法

标签: azure authentication oauth-2.0 xamarin.forms forms-authentication


【解决方案1】:

您是否尝试过 microsoftonline.com 端点?我还使用 Xamarin.Auth 实现了这一点,并且可以让它以这种方式工作。

"common" 是 {tenant},如果您只想允许个人帐户,您可以将其替换为 "consumers"。

【讨论】:

  • 谢谢,马上试试!你用的是什么范围?以及如何使用重定向 url?
  • 我使用openid offline_access https://graph.microsoft.com/user.read 作为范围。关于重定向 url,当前配置为 msal{ApplicationId}://auth/oauth2redirect,其中 {ApplicationId} 是应用程序 ID,包括破折号。在您的AuthUrlInterceptorActivity 中,您需要相应地扩展IntentFilterAttributeDataSchemesDataPaths 属性。
  • 我收到一个错误,说尝试访问重定向 url 时无法访问该网页
  • 我应该将Redirect url 的哪一部分设置为DataSchemesDataPaths?以及如何选择使用哪个AuthUrlInterceptorActivity,因为我猜我需要一个用于Google,一个用于Microsoft,或者至少更改DataSchemesDataPaths
  • 如果您在浏览器组件中收到有关重定向 url 的错误,那么您应该检查您在 apps.dev.microsoft.com 输入的任何内容。一旦正确配置,无论您的 xamarin 应用程序是否配置正确,您都不应该在浏览器组件中再出现任何错误。
【解决方案2】:

自己编写代码的另一种方法是使用 3rd 方库来处理身份验证。

CloudRail 拥有适用于 Xamarin 的 SDK,内置社交登录/身份验证集成,以及您提到的电子邮件发送。

【讨论】:

    猜你喜欢
    • 2017-12-25
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多