2014-09-12 110 views
2

我正在构建移动应用程序(也可能以后会成为Web应用程序)。服务器端是一个ASP.NET MVC + Web API应用程序,我正在考虑如何实现服务的用户管理和身份验证。移动应用程序Web API身份验证

我应该如何在应用程序中实现注册/登录屏幕?提供原生应用程式表格,只会向服务传送API要求,或​​者最好是显示网页浏览器组件并显示网站的登入网页,然后在使用者登入后提取令牌?我看到第一个选项更加用户友好,但第二个选项允许我更改登录/注册页面(例如添加外部身份验证提供程序),而不会破坏应用程序的旧版本。

我的第二个问题是关于外部身份验证提供程序。 ASP.NET Identity对他们有很好的支持,用户可以通过Facebook或其他OAuth2提供者进行注册。当我计划公开公开应用程序的API时,为外部身份验证提供程序添加支持是否有意义?有没有任何理由为什么这不是一个好主意?

回答

2

如果您认为您的用户会信任您管理其密码,那么您的第一个选择是最好的选择。您对您的服务进行安全呼叫,让服务产生不记名令牌。这将是一个匿名电话。我用了回答这个问题,让我走这路:

Get IPrincipal from OAuth Bearer Token in OWIN

如果您的用户不太可能与他们的证书信任你,那么Web视图和外部供应商是一个很好的选择。您需要与支持“隐式授权流程”的提供商合作,因为他们不想在移动设备上共享应用程序密钥和客户端密钥。这种方法涉及使用Web视图登录,然后在响应中在客户端uri片段上捕获令牌。我认为它在位置标题上,但在我面前没有一个实例。类似于: https://your.domain.com/#access_token = 8473987927394723943294

您将在每次api调用之后传递该令牌。

祝你好运!

相关问题