【发布时间】:2016-05-25 10:23:17
【问题描述】:
我需要一个 API 调用来验证登录。我们有一个带有用户表的数据库,我们正在构建一个前端,中间有一个 API。前端从用户那里获取用户名和密码,我们需要使用 API 针对数据库对这些凭据进行身份验证。
所以我们有:
- 请求对用户进行身份验证
- 表明是否通过身份验证的响应
请求
我猜请求应该是GET,因为POST 用于创建,PUT 用于更新,而我们都没有这样做。
我们需要将用户名和密码发送到服务器,并且由于我们使用的是GET,我是否正确地说我们只能使用查询字符串参数或标头来发送数据..?
我认为查询字符串参数不适合密码等,因此会为请求留下标题:
GET https://my-local-api-server/authenticate HTTP/1.1
username: my.username
password: mypassword
这是一个正确的 RESTful 请求,将数据发送到服务器进行身份验证..?
响应
对于响应,我们应该只使用响应状态码(200 或 401),还是应该发送包含身份验证请求结果的 JSON..?
{
"authenticated": true,
"error": ""
}
或
{
"authenticated": false,
"error": "Some error message..."
}
哪个是正确的 RESTful 响应..?还是两者兼而有之?
更新
我的问题不是很好,所以我需要澄清一下。
我不应该在上面的示例中使用公共 URL,这实际上是一个本地服务器和本地 API,它永远不会被外部使用,只会被其他本地应用程序内部使用。如果这种情况发生变化,我们可以重新审视我们正在做的事情。
我想我不清楚我正在做的身份验证,这让我有些困惑。我正在根据数据库对用户(现实世界的人)进行身份验证。我没有验证 API 的使用。
我们要编写的应用程序都是内部应用程序,无需进行身份验证即可使用 API。没有 API 密钥等。
所以...我正在寻找一个真实世界的人,并检查他们是否应该可以访问我们的应用程序,而不是检查我们的应用程序是否可以访问 API。
【问题讨论】:
标签: api rest authentication