加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 针对移动应用的REST API的OAuth

发布时间:2020-12-16 09:38:49 所属栏目:asp.Net 来源:网络整理
导读:我在移动应用程序的后端工作,使用ASP.NET MVC 4 Web Api构建RESTful API.该应用程序将在iOS和 Android上运行.我的用户只能使用他们的Facebook帐户登录,只有登录后,他们才能使用整个功能. 我对移动应用程序没有多少经验,这更像是一个设计问题:两个场景中的哪
我在移动应用程序的后端工作,使用ASP.NET MVC 4 Web Api构建RESTful API.该应用程序将在iOS和 Android上运行.我的用户只能使用他们的Facebook帐户登录,只有登录后,他们才能使用整个功能.

我对移动应用程序没有多少经验,这更像是一个设计问题:两个场景中的哪一个(或者可能是第三个?)似乎更好地设计了谁应该负责facebook身份验证:

>移动客户端负责.没有访问后端,它直接与Facebook说话,允许用户输入他的凭证,当它从Facebook获得令牌时,它首次点击后端,在每个请求中将令牌传递给它.
>后端API负责.移动客户端尝试从中访问资源.后端没有从客户端获取身份验证令牌,因此它重定向到Facebook登录.用户输入凭据并且facebook回复传递令牌的后端.然后,后端愿意回答客户关于所需资源的响应.

当然,第二种情况意味着后端应该使用像DotNetOpenAuth这样的软件包来处理OAuth,而在第一种情况下,这些都发生在移动客户端.

解决方法

我认为第一种方法更正确,因为它更好地模拟了http的无状态特性(它将等同于传统的http auth方法,如Basic Auth).您将在每次通话时将facebook OAuth令牌发送到web api.否则,服务器需要使用诸如cookie之类的机制以某种方式保持关于经过身份验证的用户的状态,这在第一时间看起来不正确.我只会在服务器需要使用需要身份验证的其他服务时使用服务器端身份验证,但它确实看起来像你的情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读