我想知道是否有人知道如何使用API验证用户名和密码,我很确定使用
会是愚蠢和不安全的http://api.example.com/profile?uname=name&pass=the-password
我希望有人知道如何以安全的方式做到这一点吗?
谢谢!
答案 0 :(得分:2)
使用安全连接,并在标题中提交用户名和密码是实现此目的的最佳方式。
HTTPS确保一个人不能简单地解析传输中的数据包。当然,即使在HTTPS中,在URL中抛出敏感数据也存在许多安全问题(请参阅此处:Are https URLs encrypted?)。这就是我们使用标题。
的原因请点击这里查看通过cURL发送标题:
How to send a header using a HTTP request through a curl call?
一旦您发送了正确的标头,API(当然)将需要根据这些标头值进行授权。
实现此目的的最常见方法是创建一个将使用您的用户名和密码进行授权的端点,然后向您发送授权令牌。然后,一旦收到该令牌,您只需在每个请求中包含令牌。我已经看到令牌两种方式都使用了;通过标题和通过网址。最棒的是,通过限时访问令牌,您可以在URL内部使用令牌。但是,我是一个永恒的悲观主义者,并建议仍然在标题而不是URL中携带令牌。
此时,选择权在您手中(除非您不控制API)。