2
我有一个休息服务,我的网站称之为休息服务,我希望尽可能避免在我的网站外打电话。PHP:使用带有时间戳的令牌来保护休息服务
我想创建一个与时间戳混合的令牌,因此用户只能在10分钟内(例如)使用服务器中生成的令牌调用该服务。
让我与一些伪代码解释:
1)服务器:
// The token is valid only for 10 minutes after 'time'
$token = encrypt($pKey, timestamp); // Server Time
2)客户端:令牌是在服务器使用私钥和时间戳产生我们将令牌放在javascript变量中,并将其用于客户端的时间戳请求中:
var token = '<?= $token ?>';
var params = {
token : token,
time : timestamp, // Client Time
data : mydata
}
3)服务器:如果与令牌混合的时间参数不等于10分钟的令牌,该请求是无效的:
// I'm Stuck Here
$something = decrypt($pKey, $_POST['token'], $_POST['time']);
if ($something != $tenMinutes) { // Invalid Request }
的问题:
1)这是塞纳里奥还行吗?如果是,那么确切的解决方案是什么?如果否,那么解决方案是什么?
2)还有一种塞纳里奥保证,我已经看到在AWS的要求:http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_Authentication2.html
我如何在PHP中实现这一点?