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

标签 php http api https

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

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

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

如何在不执行 POST 的情况下提交登录信息? (因为大概 GET 是通过 API 调用执行此操作的唯一方法)。发出一个 URL,如:https://www.example.com/login/user-foo@password=bar安全的? https 设置是否发生在通过网络发送 URL 之前?

如果我能解决这个问题,那么我会让登录返回一个访问 token 。第一个请求应该包含这个 token ,响应应该返回一个 token ,用于第二个请求等等......

这行得通吗?

最佳答案

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

Is isuing a URL like: https://www.example.com/login/user-foo@password=bar secure?

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

Does the https setup happen before the URL is sent over the wire?

是的,https是在http协议(protocol)之前建立的。恶意人员唯一能够看到的是端点的 IP 地址。

关于php - 如何在 HTTP 服务中进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/772011/

相关文章:

java - 如何从独立的java应用程序进行http调用

php - mysql 查询中的文本是否可能不遵守排序规则?

PHP:从文件访问目录

PHP;原产地保护组织;带有下拉菜单的 MySQL INSERT 查询

android - 将大文件上传下载到 Google 云端硬盘时出现错误

http - 使用 httrack 镜像单个页面

javascript - REST/Javascript/Activiti - 如何找出 XMLHttpRequest 出了什么问题?

api - Mac App Store 搜索 API?

php - 分析生产中缓慢的 PHP 页面

http - VLC RTSP HTML5 转码