Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 如何在HTTP服务中进行身份验证?_Php_Http_Api_Https - Fatal编程技术网

Php 如何在HTTP服务中进行身份验证?

Php 如何在HTTP服务中进行身份验证?,php,http,api,https,Php,Http,Api,Https,我们目前有一个具有用户帐户功能的网站,但我们希望提供一个API,通过为常见任务提供API,允许用户通过其他设备/网站管理其帐户/执行操作 目前,为了安全起见,网站登录是通过HTTPS完成的,然后使用PHP会话进行管理,并采取适当的安全措施来防止会话劫持等 我们如何在API中提供此功能 如何在不发布帖子的情况下提交登录?(据推测GET是通过API调用实现这一点的唯一方法)。iUsing是一个类似于:secure的URL吗?https设置是在URL通过网络发送之前进行的吗 如果我能解决这个问题,那么

我们目前有一个具有用户帐户功能的网站,但我们希望提供一个API,通过为常见任务提供API,允许用户通过其他设备/网站管理其帐户/执行操作

目前,为了安全起见,网站登录是通过HTTPS完成的,然后使用PHP会话进行管理,并采取适当的安全措施来防止会话劫持等

我们如何在API中提供此功能

如何在不发布帖子的情况下提交登录?(据推测GET是通过API调用实现这一点的唯一方法)。iUsing是一个类似于:secure的URL吗?https设置是在URL通过网络发送之前进行的吗

如果我能解决这个问题,那么我会让登录名返回一个访问令牌。第一个请求应该包括这个令牌,响应应该返回一个新令牌,用于第二个请求,依此类推


这行得通吗?

您考虑过使用SSL吗?从理论上讲,您应该能够通过SOAP对用户进行身份验证。

您考虑过使用SSL吗?理论上,您应该能够通过SOAP对用户进行身份验证?如果您允许这样做,那么您的用户可以保留经过身份验证的令牌,只要他们愿意

或者,您可能根本不需要任何身份验证,如果您可以在收到GET请求时重定向到登录名。例如:任何网站都可以链接到Twitter的URL。未登录时,Twitter将首先重定向到登录页面。引用站点甚至不需要知道Twitter用户名

(是的:在发送URL之前,根据服务器的IP地址建立HTTPS。)

使用标准,例如?如果您允许这样做,那么您的用户可以保留经过身份验证的令牌,只要他们愿意

或者,您可能根本不需要任何身份验证,如果您可以在收到GET请求时重定向到登录名。例如:任何网站都可以链接到Twitter的URL。未登录时,Twitter将首先重定向到登录页面。引用站点甚至不需要知道Twitter用户名

(是的:在发送URL之前,根据服务器的IP地址建立HTTPS。)

您可以使用。它基本上是一个标题,包含用户名+密码。这样做的好处是,它是无状态的(您不需要单独的登录过程),并且得到了很好的支持。它的实现也非常简单。只要您通过https提供服务,安全性就很好

iUsing是一个类似于:secure的URL吗

将凭据放在URL中是不好的,因为它可能会出现在日志中

https设置是在URL通过网络发送之前进行的吗

是的,https是在http协议之前建立的。恶意用户只能看到端点的IP地址。

您可以使用。它基本上是一个标题,包含用户名+密码。这样做的好处是,它是无状态的(您不需要单独的登录过程),并且得到了很好的支持。它的实现也非常简单。只要您通过https提供服务,安全性就很好

iUsing是一个类似于:secure的URL吗

将凭据放在URL中是不好的,因为它可能会出现在日志中

https设置是在URL通过网络发送之前进行的吗


是的,https是在http协议之前建立的。恶意用户只能看到端点的IP地址。

您可以通过要求调用者设置标头在REST API中执行身份验证。i、 e.他们设置一个“X-YourApp-API-Key”标题,然后您读取并使用该标题进行身份验证。这不仅允许您对POST和GET方法进行身份验证,还允许您对PUT、HEAD和DELETE进行身份验证,这样您就拥有了REST方法的完整补充


如果您的所有呼叫都是通过HTTPS进行的,那么这本身就可以了。如果您希望通过HTTPS进行身份验证,然后通过常规HTTP进行后续调用,则需要实现类似的功能,并为清除请求中的发出令牌。

您可以在REST API中通过要求调用方设置头来执行身份验证。i、 e.他们设置一个“X-YourApp-API-Key”标题,然后您读取并使用该标题进行身份验证。这不仅允许您对POST和GET方法进行身份验证,还允许您对PUT、HEAD和DELETE进行身份验证,这样您就拥有了REST方法的完整补充


如果您的所有呼叫都是通过HTTPS进行的,那么这本身就可以了。如果您希望通过HTTPS进行身份验证,然后通过常规HTTP进行后续调用,则需要实现类似的功能,并为清除请求中的发出令牌。

OAuth用于授权,而不是身份验证。它可能也适用于这种情况,但我认为Visage并不是这么要求的。要获得代币,首先需要进行身份验证。为了允许其他网站访问API(如Visage所要求的),而不泄露身份验证凭据,我觉得OAuth是一种方式。再次阅读这个问题,我认为你可能是对的。OAuth是授权,而不是身份验证。它可能也适用于这种情况,但我认为Visage并不是这么要求的。要获得代币,首先需要进行身份验证。为了允许其他网站访问API(如Visage所要求的),而不泄露身份验证凭据,我觉得OAuth是一种方式。再次阅读这个问题,我认为你可能是对的……但这意味着Vinsage在“通过其他设备/网站执行操作”中的“其他网站”需要知道凭据。@Arjan:如果您询问端点是否都需要知道密码,那么是的。如果这是一个问题,您可以改为使用ssl连接的证书。然后,您不需要任何显式身份验证,因为https将同时提供加密和身份验证。这是一个