mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
auth47 bootstrapping
This commit is contained in:
27
app/Http/Livewire/Auth/Auth47Component.php
Normal file
27
app/Http/Livewire/Auth/Auth47Component.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Livewire\Auth;
|
||||
|
||||
use Livewire\Component;
|
||||
use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
||||
|
||||
class Auth47Component extends Component
|
||||
{
|
||||
public ?string $k1 = null;
|
||||
protected ?string $url = null;
|
||||
|
||||
public function mount()
|
||||
{
|
||||
$this->k1 = bin2hex(str()->random(32));
|
||||
$this->url = 'auth47://'.$this->k1.'?c=https://einundzwanzig.eu-1.sharedwithexpose.com/auth/auth47-callback&r=https://einundzwanzig.eu-1.sharedwithexpose.com/auth/auth47-callback';
|
||||
$this->qrCode = base64_encode(QrCode::format('png')
|
||||
->size(600)
|
||||
->errorCorrection('L')
|
||||
->generate($this->url));
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.auth.auth47-component')->layout('layouts.guest');
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,11 @@ class LNUrlAuth extends Component
|
||||
public function mount()
|
||||
{
|
||||
$this->k1 = bin2hex(str()->random(32));
|
||||
if (app()->environment('local')) {
|
||||
$this->url = 'https://einundzwanzig.eu-1.sharedwithexpose.com/api/lnurl-auth-callback?tag=login&k1='.$this->k1.'&action=login';
|
||||
} else {
|
||||
$this->url = url('/api/lnurl-auth-callback?tag=login&k1='.$this->k1.'&action=login');
|
||||
}
|
||||
$this->lnurl = lnurl\encodeUrl($this->url);
|
||||
$this->qrCode = base64_encode(QrCode::format('png')
|
||||
->size(300)
|
||||
|
||||
@@ -13,5 +13,6 @@ class VerifyCsrfToken extends Middleware
|
||||
*/
|
||||
protected $except = [
|
||||
'horizon/*',
|
||||
'auth/auth47-callback',
|
||||
];
|
||||
}
|
||||
|
||||
160
composer.lock
generated
160
composer.lock
generated
@@ -760,16 +760,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "3.5.3",
|
||||
"version": "3.5.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "88fa7e5189fd5ec6682477044264dc0ed4e3aa1e"
|
||||
"reference": "e0021572bcb343e6fa51bbed8280392c863e1750"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/88fa7e5189fd5ec6682477044264dc0ed4e3aa1e",
|
||||
"reference": "88fa7e5189fd5ec6682477044264dc0ed4e3aa1e",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/e0021572bcb343e6fa51bbed8280392c863e1750",
|
||||
"reference": "e0021572bcb343e6fa51bbed8280392c863e1750",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -782,11 +782,12 @@
|
||||
"psr/log": "^1|^2|^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "11.0.0",
|
||||
"doctrine/coding-standard": "11.1.0",
|
||||
"fig/log-test": "^1",
|
||||
"jetbrains/phpstorm-stubs": "2022.3",
|
||||
"phpstan/phpstan": "1.9.4",
|
||||
"phpstan/phpstan": "1.9.14",
|
||||
"phpstan/phpstan-strict-rules": "^1.4",
|
||||
"phpunit/phpunit": "9.5.27",
|
||||
"phpunit/phpunit": "9.6.3",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"squizlabs/php_codesniffer": "3.7.1",
|
||||
"symfony/cache": "^5.4|^6.0",
|
||||
@@ -851,7 +852,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.5.3"
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -867,7 +868,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-12T10:21:44+00:00"
|
||||
"time": "2023-02-07T19:48:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
@@ -2014,6 +2015,90 @@
|
||||
],
|
||||
"time": "2022-10-26T14:07:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/uri-template",
|
||||
"version": "v1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/uri-template.git",
|
||||
"reference": "b945d74a55a25a949158444f09ec0d3c120d69e2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2",
|
||||
"reference": "b945d74a55a25a949158444f09ec0d3c120d69e2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"symfony/polyfill-php80": "^1.17"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.19 || ^9.5.8",
|
||||
"uri-template/tests": "1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\UriTemplate\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
}
|
||||
],
|
||||
"description": "A polyfill class for uri_template of PHP",
|
||||
"keywords": [
|
||||
"guzzlehttp",
|
||||
"uri-template"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/uri-template/issues",
|
||||
"source": "https://github.com/guzzle/uri-template/tree/v1.0.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/GrahamCampbell",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/Nyholm",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-07T12:57:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "http-interop/http-factory-guzzle",
|
||||
"version": "1.2.0",
|
||||
@@ -2702,16 +2787,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v9.50.2",
|
||||
"version": "v9.51.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "39932773c09658ddea9045958f305e67f9304995"
|
||||
"reference": "b81123134349a013a738a9f7f715c6ce99d5a414"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/39932773c09658ddea9045958f305e67f9304995",
|
||||
"reference": "39932773c09658ddea9045958f305e67f9304995",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/b81123134349a013a738a9f7f715c6ce99d5a414",
|
||||
"reference": "b81123134349a013a738a9f7f715c6ce99d5a414",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2719,9 +2804,15 @@
|
||||
"doctrine/inflector": "^2.0.5",
|
||||
"dragonmantank/cron-expression": "^3.3.2",
|
||||
"egulias/email-validator": "^3.2.1|^4.0",
|
||||
"ext-ctype": "*",
|
||||
"ext-filter": "*",
|
||||
"ext-hash": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-session": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"fruitcake/php-cors": "^1.2",
|
||||
"guzzlehttp/uri-template": "^1.0",
|
||||
"laravel/serializable-closure": "^1.2.2",
|
||||
"league/commonmark": "^2.2.1",
|
||||
"league/flysystem": "^3.8.0",
|
||||
@@ -2793,6 +2884,7 @@
|
||||
"ably/ably-php": "^1.0",
|
||||
"aws/aws-sdk-php": "^3.235.5",
|
||||
"doctrine/dbal": "^2.13.3|^3.1.4",
|
||||
"ext-gmp": "*",
|
||||
"fakerphp/faker": "^1.21",
|
||||
"guzzlehttp/guzzle": "^7.5",
|
||||
"league/flysystem-aws-s3-v3": "^3.0",
|
||||
@@ -2815,10 +2907,13 @@
|
||||
"aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
|
||||
"brianium/paratest": "Required to run tests in parallel (^6.0).",
|
||||
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
|
||||
"ext-apcu": "Required to use the APC cache driver.",
|
||||
"ext-fileinfo": "Required to use the Filesystem class.",
|
||||
"ext-ftp": "Required to use the Flysystem FTP driver.",
|
||||
"ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
|
||||
"ext-memcached": "Required to use the memcache cache driver.",
|
||||
"ext-pcntl": "Required to use all features of the queue worker.",
|
||||
"ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
|
||||
"ext-pdo": "Required to use all database features.",
|
||||
"ext-posix": "Required to use all features of the queue worker.",
|
||||
"ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
|
||||
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
|
||||
@@ -2886,20 +2981,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-02-02T20:52:46+00:00"
|
||||
"time": "2023-02-07T15:37:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/horizon",
|
||||
"version": "v5.14.0",
|
||||
"version": "v5.14.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/horizon.git",
|
||||
"reference": "29da5dcf055c084502e61e84c1070252e8a2ceb8"
|
||||
"reference": "a990617de27700df73841f6ccaff46e09ba9ec3f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/horizon/zipball/29da5dcf055c084502e61e84c1070252e8a2ceb8",
|
||||
"reference": "29da5dcf055c084502e61e84c1070252e8a2ceb8",
|
||||
"url": "https://api.github.com/repos/laravel/horizon/zipball/a990617de27700df73841f6ccaff46e09ba9ec3f",
|
||||
"reference": "a990617de27700df73841f6ccaff46e09ba9ec3f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2961,22 +3056,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/horizon/issues",
|
||||
"source": "https://github.com/laravel/horizon/tree/v5.14.0"
|
||||
"source": "https://github.com/laravel/horizon/tree/v5.14.1"
|
||||
},
|
||||
"time": "2023-01-27T11:08:41+00:00"
|
||||
"time": "2023-02-07T14:56:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/jetstream",
|
||||
"version": "v2.16.0",
|
||||
"version": "v2.16.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/jetstream.git",
|
||||
"reference": "ab711bf1ddba2d9af257350eeb0412e6e9d46452"
|
||||
"reference": "16cafeb0965c7332c8cda8d63a965e887ddab334"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/jetstream/zipball/ab711bf1ddba2d9af257350eeb0412e6e9d46452",
|
||||
"reference": "ab711bf1ddba2d9af257350eeb0412e6e9d46452",
|
||||
"url": "https://api.github.com/repos/laravel/jetstream/zipball/16cafeb0965c7332c8cda8d63a965e887ddab334",
|
||||
"reference": "16cafeb0965c7332c8cda8d63a965e887ddab334",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3033,7 +3128,7 @@
|
||||
"issues": "https://github.com/laravel/jetstream/issues",
|
||||
"source": "https://github.com/laravel/jetstream"
|
||||
},
|
||||
"time": "2023-01-18T23:01:15+00:00"
|
||||
"time": "2023-02-03T14:19:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/legacy-factories",
|
||||
@@ -14716,23 +14811,24 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/sail",
|
||||
"version": "v1.19.0",
|
||||
"version": "v1.20.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sail.git",
|
||||
"reference": "4f230634a3163f3442def6a4e6ffdb02b02e14d6"
|
||||
"reference": "65dc0556d5809f47f7c39267df4e93f3cc59c512"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sail/zipball/4f230634a3163f3442def6a4e6ffdb02b02e14d6",
|
||||
"reference": "4f230634a3163f3442def6a4e6ffdb02b02e14d6",
|
||||
"url": "https://api.github.com/repos/laravel/sail/zipball/65dc0556d5809f47f7c39267df4e93f3cc59c512",
|
||||
"reference": "65dc0556d5809f47f7c39267df4e93f3cc59c512",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/console": "^8.0|^9.0|^10.0",
|
||||
"illuminate/contracts": "^8.0|^9.0|^10.0",
|
||||
"illuminate/support": "^8.0|^9.0|^10.0",
|
||||
"php": "^7.3|^8.0"
|
||||
"php": "^7.3|^8.0",
|
||||
"symfony/yaml": "^6.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/sail"
|
||||
@@ -14772,7 +14868,7 @@
|
||||
"issues": "https://github.com/laravel/sail/issues",
|
||||
"source": "https://github.com/laravel/sail"
|
||||
},
|
||||
"time": "2023-01-31T13:37:57+00:00"
|
||||
"time": "2023-02-05T15:12:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mockery/mockery",
|
||||
|
||||
14
resources/views/livewire/auth/auth47-component.blade.php
Normal file
14
resources/views/livewire/auth/auth47-component.blade.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="bg-white flex flex-col h-screen justify-between py-16">
|
||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row">
|
||||
<div class="flex flex-col space-y-4">
|
||||
<div class="flex justify-center" wire:key="qrcode">
|
||||
<a href="{{ $this->url }}">
|
||||
<img src="{{ 'data:image/png;base64, '. $this->qrCode }}" alt="qrcode">
|
||||
</a>
|
||||
</div>
|
||||
<code class="font-mono text-black">
|
||||
{{ $this->url }}
|
||||
</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
@@ -7,6 +8,17 @@ Route::middleware([])
|
||||
->get('/', \App\Http\Livewire\Frontend\Welcome::class)
|
||||
->name('welcome');
|
||||
|
||||
Route::get('auth/auth47', \App\Http\Livewire\Auth\Auth47Component::class)
|
||||
->name('auth.auth47');
|
||||
|
||||
Route::post('auth/auth47-callback', function (Request $request) {
|
||||
$auth47Version = $request->auth47_response;
|
||||
$challenge = $request->challenge;
|
||||
$signature = $request->signature;
|
||||
$nym = $request->nym;
|
||||
})
|
||||
->name('auth.auth47.callback');
|
||||
|
||||
Route::middleware([])
|
||||
->get('/news', \App\Http\Livewire\News\ArticleOverview::class)
|
||||
->name('article.overview');
|
||||
|
||||
Reference in New Issue
Block a user