aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job
diff options
context:
space:
mode:
authorwinter2024-12-16 20:27:01 +0000
committerwinter2024-12-16 20:41:33 +0000
commit68c7e68b3f90fd980661774fdb2bb2d6140a34d0 (patch)
tree7993de39c7c637369bdbfb22e265319b43fcbf33 /Digitigrade/Job
parent2f4c1de3509141880df019ef1a6cc65981b3f6ea (diff)
implement the other side of auth (hopefully?)
also mostly untested for the same reason as last time
Diffstat (limited to 'Digitigrade/Job')
-rw-r--r--Digitigrade/Job/ExpireInboundAuthToken.php34
-rw-r--r--Digitigrade/Job/RefreshOutboundAuthToken.php1
-rw-r--r--Digitigrade/Job/RequestOutboundAuthToken.php2
3 files changed, 35 insertions, 2 deletions
diff --git a/Digitigrade/Job/ExpireInboundAuthToken.php b/Digitigrade/Job/ExpireInboundAuthToken.php
new file mode 100644
index 0000000..dfb5ae6
--- /dev/null
+++ b/Digitigrade/Job/ExpireInboundAuthToken.php
@@ -0,0 +1,34 @@
+<?php
+namespace Digitigrade\Job;
+
+use Digitigrade\Job;
+use Digitigrade\JobQueue;
+use Digitigrade\Logger;
+use Digitigrade\Model\Instance;
+
+class ExpireInboundAuthToken extends Job {
+ public string $domain;
+ public string $token;
+ public \DateTimeInterface $when;
+
+ public function __construct(string $domain, string $token, \DateTimeInterface $when) {
+ $this->domain = $domain;
+ $this->token = $token;
+ $this->when = $when;
+ $this->remainingTries = 5;
+ }
+
+ public function run() {
+ Logger::getInstance()->info("expiring token for $this->domain");
+ $instance = Instance::findByDomain($this->domain);
+ if ($instance->auth->inboundToken != $this->token) {
+ Logger::getInstance()->info("actually not expiring the token because it's been refreshed");
+ return;
+ }
+ $instance->auth->inboundToken = null;
+ }
+
+ public function submit() {
+ JobQueue::getInstance()->submitDelayedUntil($this, $this->when);
+ }
+} \ No newline at end of file
diff --git a/Digitigrade/Job/RefreshOutboundAuthToken.php b/Digitigrade/Job/RefreshOutboundAuthToken.php
index 588617f..72dd466 100644
--- a/Digitigrade/Job/RefreshOutboundAuthToken.php
+++ b/Digitigrade/Job/RefreshOutboundAuthToken.php
@@ -8,7 +8,6 @@ use Digitigrade\Model\Instance;
class RefreshOutboundAuthToken extends Job {
public string $domain;
- public string $token;
public \DateTimeInterface $when;
public function __construct(string $domain, \DateTimeInterface $when) {
diff --git a/Digitigrade/Job/RequestOutboundAuthToken.php b/Digitigrade/Job/RequestOutboundAuthToken.php
index 69430c8..1786e32 100644
--- a/Digitigrade/Job/RequestOutboundAuthToken.php
+++ b/Digitigrade/Job/RequestOutboundAuthToken.php
@@ -17,7 +17,7 @@ class RequestOutboundAuthToken extends Job {
}
public function run() {
- Logger::getInstance()->info("responding to $this->domain's dialback challenge");
+ Logger::getInstance()->info("requesting token from $this->domain in response to their dialback challenge");
$instance = Instance::findByDomain($this->domain);
$instance->requestOutboundAuthToken($this->secret);
}