Pur*_*ome 14 authentication api rest json
我正在寻找构建一些移动应用程序.因此,这些应用程序将通过JSON和REST(例如put,post等)与我的服务器"交谈".
如果我想确保客户端手机应用程序尝试执行需要某些"许可"的操作,那么人们如何处理此问题?
例如:
我们的网站销售东西 - >电视,汽车,连衣裙等.api将允许人们浏览商店和购买物品.要购买,您需要"登录".我需要确保使用手机的人真的是他们.
如何才能做到这一点?
我已经看过twitter如何使用他们的OAuth ......看起来他们在REQUEST HEADER中有很多值?如果是这样(我有点像这种方法),我是否可以使用另一个第三方作为存储用户名/密码的网站(例如,Twitter或Facebook是OAuth提供商)..而我所做的就是以某种方式检索自定义标题数据..并确保它存在于我的数据库.. else ..让他们与他们的OAuth提供商进行身份验证?
或者还有另一种方式吗?
PS.我真的不喜欢拥有API密钥的想法 - 我觉得它可以很容易地交给另一个人使用(我们不能承担风险).
Per*_*ion 10
我们的网站销售东西 - >电视,汽车,连衣裙等.api将允许人们浏览商店和购买物品.要购买,您需要"登录".我需要确保使用手机的人真的是他们.
如果这确实是一项要求,那么您需要在系统中存储用户身份.最流行的身份跟踪形式是通过用户名和密码.
我已经看过twitter如何使用他们的OAuth ......看起来他们在REQUEST HEADER中有很多值?如果是这样(我有点像这种方法),我是否可以使用另一个第三方作为存储用户名/密码的网站(例如,Twitter或Facebook是OAuth提供商)..而我所做的就是以某种方式检索自定义标题数据..并确保它存在于我的数据库.. else ..让他们与他们的OAuth提供商进行身份验证?
你在这里混淆了两种不同的技术,OpenID和OAuth(不要感觉不好,很多人都会因此而惹恼).OpenID允许您推迟向提供者标识跟踪和身份验证,然后在您的应用程序中接受这些身份,作为接受者或依赖方.另一方面,OAuth允许应用程序(消费者)访问属于另一个应用程序或系统的用户数据,而不会损害其他应用程序的核心安全性.如果您希望第三方开发人员代表您的用户访问您的API(这不是您已声明要做的事情),那么您就会站起来OAuth.
对于您声明的要求,您绝对可以将Open ID集成到您的应用程序中.有许多库可用于集成,但由于您要求不可知的答案,我不会列出任何一个.
或者还有另一种方式吗?
当然.您可以在系统中存储用户ID,并使用基本或摘要式身份验证来保护您的API.基本身份验证只需要一个(容易计算的)附加标头:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Run Code Online (Sandbox Code Playgroud)
如果您使用基本身份验证或摘要身份验证,请确保您的API端点受SSL保护,否则可以轻松地通过无线方式嗅探用户凭据.您还可以通过信用卡信息进行用户识别,并在结账时有效地验证用户,但这是一个判断呼叫.
| 归档时间: |
|
| 查看次数: |
16617 次 |
| 最近记录: |