OAuth 2.0 与 Web API 和 Xamarin

OAuth 2.0 With Web API and Xamarin

我对 Web 开发还比较陌生,所以请多多包涵。

  1. 我用 C#(非 Web 应用程序)开发了一个后端服务器,它通过在 Web API(OWIN 和 Katana)中实现的 REST API 公开了一些功能。
  2. 我开发了一个 Xamarin android 应用程序,它消耗 API。

现在我只想为使用 Google 进行身份验证的用户启用 API 的使用。

我知道 OAuth 是实现它的方式,我已经阅读了很多关于它的内容,但我仍然对这里的角色以及谁应该做什么感到困惑。

我的服务器应该做什么或实现什么?我的客户应该做什么或实施什么?

需要注意的 OAuth2 的一个重要特性是两种不同的身份验证流程类型:

  • 隐式身份验证流程
  • 显式授权流程

我个人发现 Instagram API 文档对此进行了很好的解释: https://instagram.com/developer/authentication/

显式身份验证流程有点棘手,因为它涉及您的自定义部分的额外协调 API。隐式身份验证流程稍微容易一些,因为您的应用程序将只查找从 OAuth 提供程序返回的 URL 片段。该 URL 片段包含一个令牌,您可以使用该令牌对您要与之交谈的 API 进行后续调用,在您的情况下为 Google。

但在您的情况下,听起来您想使用 Google 作为您的自定义 API 的身份提供者,对吗?在那种情况下,我认为您需要使用显式身份验证流程。再次查看 Instagram 文档。我发现他们特别擅长解释 OAuth2。

编辑:

并注意 Xamarin.Auth 组件,它是为简化 OAuth 场景而设计的。您可以在 Xamarin Component Store or on Github.

中找到它