ln auth added and email service activated

This commit is contained in:
Benjamin Takats
2022-12-01 20:35:54 +01:00
parent c88ca49ab6
commit 4183f00878
9 changed files with 283 additions and 29 deletions

View File

@@ -10,34 +10,37 @@ use SimpleSoftwareIO\QrCode\Facades\QrCode;
class LNUrlAuth extends Component
{
protected ?string $k1 = null;
public ?string $k1 = null;
protected ?string $url = null;
protected ?string $lnurl = null;
protected ?string $qrCode = null;
public function switchToEmail()
{
dd('test');
return to_route('login');
}
public function mount()
{
$this->k1 = bin2hex(str()->random(32));
$this->lnurl = lnurl\encodeUrl(url('/lnurl-auth-callback',
['tag' => 'login', 'k1' => $this->k1, 'action' => 'login']));
$this->url = url('/lnurl-auth-callback?tag=login&k1='.$this->k1.'&action=login');
$this->lnurl = lnurl\encodeUrl($this->url);
$this->qrCode = QrCode::size(300)
->generate($this->lnurl);
}
public function checkAuth()
{
$loginKey = LoginKey::where('k1', $this->k1)
->where('created_at', '<=', now()->subMinutes(5))
$loginKey = LoginKey::query()
->where('k1', $this->k1)
->whereDate('created_at', '>=', now()->subMinutes(5))
->first();
// you should also restrict this 👆🏻 by time, and find only the $k1 that were created in the last 5 minutes
if ($loginKey) {
$user = User::find($loginKey->user_id);
auth()->login($user);
return to_route('welcome');
}