管理restful api中端点的尝试次数

时间:2016-09-23 18:57:31

标签: php rest api

虽然在restful api中没有会话,但是在一个宁静的api中管理多少次尝试(例如登录)的最佳/常用方法是什么?

2 个答案:

答案 0 :(得分:0)

在数据库中创建一个表,如token_storage_tbl,然后添加三列:tid(int)255 PK AI,token(varchar)1024,times_used int(255)

然后,您可以使用您的连接来查询和增加times_used表。

$smtp = $pdo->Prepare('UPDATE token_storage_tbl SET times_used = ? WHERE token = ?');
$smtp->execute(array(....));

了解它的使用次数:

$maxUse = 3;
$smtp = $pdo->Prepare('SELECT times_used FROM token_storage_tbl WHERE token = ?');
if($smtp->execute(['token here'])->fetch()['times_used'] > $maxUse) {
    // oh no... its been used too much
}

答案 1 :(得分:0)

您要问的是您的其他API的自定义安全逻辑。它永远不应该是rest API的一部分。 rest不应该实现这样的安全逻辑,而应该只做它应该做的API。

现在您可以为自定义安全逻辑添加一个分层,您可以添加一个过滤器来维护和审核调用,并可用于增强API的安全性。

肯定你需要坚持验证某个客户的通话次数。