あるアプリから別のアプリへの API 呼び出しを行っています。md5
ed共有シークレット+タイムスタンプを渡すことで承認を処理します...
$token = md5( $secret . time() );
次に、API エンドポイントで、次のようにリクエストの信頼性を確認します...
if ( md5($shared_secret . time() ) == $token )
...do stuff
これは機能します。しかし、それは私が望むほど信頼できるものではありません。その理由は、ネットワーク (または低速の localhost サーバー) の遅延が原因で、タイムスタンプが 1 秒ほどずれているためだと思われます。
タイムスタンプの最後の桁を削除するという怠惰な方法でこれを回避しました。これにより、slowpoke サーバーが呼び出しを行うための最大 10 秒のウィンドウが作成されました。しかし、私はこれに満足していません.9秒の終わりに電話がかかってきたら、同じ問題が再び発生するからです. ######50)。
これを行うためのより良い方法があるはずです。それは何ですか?