mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 04:17:07 +00:00
login: allow 60 seconds clock drift on login JWT
can everyone please just use NTP already?
This commit is contained in:
parent
a27c9409f1
commit
47321114eb
@ -45,6 +45,8 @@ class VerifyLoginTask extends AsyncTask{
|
|||||||
|
|
||||||
public const MOJANG_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE8ELkixyLcwlZryUQcu1TvPOmI2B7vX83ndnWRUaXm74wFfa5f/lwQNTfrLVHa2PmenpGI6JhIMUJaWZrjmMj90NoKNFSNBuKdm8rYiXsfaz3K36x/1U26HpG0ZxK/V1V";
|
public const MOJANG_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE8ELkixyLcwlZryUQcu1TvPOmI2B7vX83ndnWRUaXm74wFfa5f/lwQNTfrLVHa2PmenpGI6JhIMUJaWZrjmMj90NoKNFSNBuKdm8rYiXsfaz3K36x/1U26HpG0ZxK/V1V";
|
||||||
|
|
||||||
|
private const CLOCK_DRIFT_MAX = 60;
|
||||||
|
|
||||||
/** @var LoginPacket */
|
/** @var LoginPacket */
|
||||||
private $packet;
|
private $packet;
|
||||||
|
|
||||||
@ -144,11 +146,11 @@ class VerifyLoginTask extends AsyncTask{
|
|||||||
$claims = json_decode(base64_decode(strtr($payloadB64, '-_', '+/'), true), true);
|
$claims = json_decode(base64_decode(strtr($payloadB64, '-_', '+/'), true), true);
|
||||||
|
|
||||||
$time = time();
|
$time = time();
|
||||||
if(isset($claims["nbf"]) and $claims["nbf"] > $time){
|
if(isset($claims["nbf"]) and $claims["nbf"] > $time + self::CLOCK_DRIFT_MAX){
|
||||||
throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooEarly");
|
throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooEarly");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($claims["exp"]) and $claims["exp"] < $time){
|
if(isset($claims["exp"]) and $claims["exp"] < $time - self::CLOCK_DRIFT_MAX){
|
||||||
throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooLate");
|
throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooLate");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user