init
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Lucent\AccessKey;
|
||||
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Str;
|
||||
use Lucent\Id\Id;
|
||||
use Lucent\LucentException;
|
||||
use Lucent\Member\Role;
|
||||
|
||||
class AccessKeyService
|
||||
{
|
||||
|
||||
public static function create(string $name, string $role): AccessKey
|
||||
{
|
||||
$showOnceToken = Str::random(48);
|
||||
$accessKey = new AccessKey(
|
||||
_id: Id::new(),
|
||||
name: $name,
|
||||
token: hash("sha256", $showOnceToken),
|
||||
role: Role::from($role),
|
||||
showOnceToken: $showOnceToken,
|
||||
);
|
||||
|
||||
AccessKeyRepo::add($accessKey);
|
||||
return $accessKey;
|
||||
}
|
||||
|
||||
public static function findByToken(string $token): ?AccessKey
|
||||
{
|
||||
$hashedToken = hash("sha256", $token);
|
||||
return AccessKeyRepo::findByToken($hashedToken);
|
||||
}
|
||||
|
||||
public static function remove(string $id): void
|
||||
{
|
||||
|
||||
AccessKeyRepo::remove($id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user