Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Rest-使用敏感数据(例如用户和密码)搜索资源_Php_Laravel_Rest_Laravel Passport - Fatal编程技术网

Php Rest-使用敏感数据(例如用户和密码)搜索资源

Php Rest-使用敏感数据(例如用户和密码)搜索资源,php,laravel,rest,laravel-passport,Php,Laravel,Rest,Laravel Passport,在RESTfulAPI中进行搜索和过滤时,GET似乎始终是HTTP的动词,因为它的优点(缓存、URL共享等)。但是,如果我想使用敏感数据检索资源,该怎么办?具体来说,我希望将凭据(用户名/电子邮件和密码)传递给端点,让它告诉我它是否匹配资源,模拟典型的登录身份验证系统。它是否像向返回匹配资源的端点发送具有此类凭据的POST请求一样简单?我是否创建一个RPC类型的调用并只返回true/false?这样做是否合理和/或安全 我试着查找这样一个场景,但是很多站点和评论只讨论实际的API身份验证。我已经

在RESTfulAPI中进行搜索和过滤时,GET似乎始终是HTTP的动词,因为它的优点(缓存、URL共享等)。但是,如果我想使用敏感数据检索资源,该怎么办?具体来说,我希望将凭据(用户名/电子邮件和密码)传递给端点,让它告诉我它是否匹配资源,模拟典型的登录身份验证系统。它是否像向返回匹配资源的端点发送具有此类凭据的POST请求一样简单?我是否创建一个RPC类型的调用并只返回true/false?这样做是否合理和/或安全

我试着查找这样一个场景,但是很多站点和评论只讨论实际的API身份验证。我已经将我的API锁定在OAuth后面,并使用客户端凭据授权,因为不需要用户上下文(我使用PHP+laravel+passport来构建我的API并处理OAuth 2)


关于我为什么要这么做的更多背景知识-这个API更像是一个通用API,它返回我们设置的其他系统所需的数据。这些现有/遗留系统都有自己的数据库,但需要与此API为其公开数据的数据库接口。目前,他们通过实际调用该数据库来与该数据库通信,并在需要时进行一系列跨数据库连接。这使得测试变得很困难,并且在资产之间引入了大量代码重复,因此我们决定最合理的步骤是使用一个公共API。唯一的问题是API使用的数据库中存在身份验证表,这些遗留系统(及其登录表单)直接使用该数据库进行身份验证。我基本上希望更新所有登录调用,让它们通过API而不是跨数据库调用来拉取正确的用户。

所以这是两个步骤。1.)客户端必须具有oAuth令牌,然后2.)客户端必须具有遗留系统的用户/密码。对的我看这没什么问题。在处理遗留系统时,只需做有效的事情并将其推出即可。实际上,API客户端与使用遗留系统的实际用户无关。遗留系统上的API客户端仅使用访问令牌连接到我的API,此API具有可以提取大量所需资源的端点。用户帐户就是这样一种资源。这些帐户是这些遗留系统用于登录的,因此我需要一种方法来模拟登录,方法是查看特定帐户资源是否与用户在遗留系统中输入的用户名/密码相匹配(并使用匹配资源的数据设置适当的会话/cookie),如@Ohgodwhy所述,在这里,你真的可以做“有用的”。在您的情况下,由于您需要发送敏感信息以检索敏感信息,因此我认为通过HTTPS发布并从中返回数据没有问题。这不是教科书上的休息,但它会完成工作。