Laravel AT Protocol Client (alpha & unstable)
at dev 1.4 kB view raw
1<?php 2 3namespace SocialDept\AtpClient\Providers; 4 5use Illuminate\Support\Facades\Session; 6use SocialDept\AtpClient\Contracts\CredentialProvider; 7use SocialDept\AtpClient\Data\AccessToken; 8use SocialDept\AtpClient\Data\Credentials; 9 10class SessionCredentialProvider implements CredentialProvider 11{ 12 protected string $prefix = 'atp.credentials.'; 13 14 public function getCredentials(string $did): ?Credentials 15 { 16 return Session::get($this->key($did)); 17 } 18 19 public function storeCredentials(string $did, AccessToken $token): void 20 { 21 Session::put($this->key($did), $this->toCredentials($token)); 22 } 23 24 public function updateCredentials(string $did, AccessToken $token): void 25 { 26 $this->storeCredentials($did, $token); 27 } 28 29 public function removeCredentials(string $did): void 30 { 31 Session::forget($this->key($did)); 32 } 33 34 protected function key(string $did): string 35 { 36 return $this->prefix.$did; 37 } 38 39 protected function toCredentials(AccessToken $token): Credentials 40 { 41 return new Credentials( 42 did: $token->did, 43 accessToken: $token->accessJwt, 44 refreshToken: $token->refreshJwt, 45 expiresAt: $token->expiresAt, 46 handle: $token->handle, 47 issuer: $token->issuer, 48 scope: $token->scope, 49 authType: $token->authType, 50 ); 51 } 52}