1. Go to this page and download the library: Download quillstack/auth library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Quillstack\Auth\Identity;
use Quillstack\Auth\IdentityProviderInterface;
use Quillstack\Auth\Token;
final class Users implements IdentityProviderInterface
{
public function __construct(private readonly Orm $orm)
{
}
public function findByToken(string $token): ?Identity
{
$tokens = $this->orm->repository(ApiToken::class);
$found = $tokens->one($tokens->query()->where('hash', '=', Token::hash($token)));
return $found === null
? null
: new Identity($found->userId, $found->roles, ['email' => $found->email]);
}
}
use Quillstack\Auth\Middleware\AuthenticationMiddleware;
public function handle(ServerRequestInterface $request): OrdersResponse
{
$identity = AuthenticationMiddleware::identityOf($request);
$identity?->id;
$identity?->hasRole('admin');
$identity?->attribute('email');
}
use Quillstack\Auth\Password;
$user->password = Password::hash($given);
if (Password::verify($given, $user->password)) {
// …
}
if (Password::verify($given, $user->password) && Password::needsRehash($user->password)) {
$user->password = Password::hash($given);
}
use Quillstack\Auth\Token;
$token = Token::create(); // hand this to the client, once
$stored = Token::hash($token); // keep this
Token::verify($token, $stored);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.