虽然在restful api中没有会话,但是在一个宁静的api中管理多少次尝试(例如登录)的最佳/常用方法是什么?
答案 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的安全性。
肯定你需要坚持验证某个客户的通话次数。