You've already forked lubo_comment_query
							
							WebAuthn初步接好
This commit is contained in:
		
							
								
								
									
										68
									
								
								app/Models/WebauthnCredential.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								app/Models/WebauthnCredential.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| <?php | ||||
| 
 | ||||
| namespace App\Models; | ||||
| 
 | ||||
| use App\Models\Casts\TrustPath; | ||||
| use App\Models\Casts\Uuid; | ||||
| use App\Models\Casts\WebAuthnBase64; | ||||
| use Illuminate\Database\Eloquent\Model; | ||||
| use Webauthn\PublicKeyCredentialSource; | ||||
| 
 | ||||
| class WebauthnCredential extends Model | ||||
| { | ||||
|     protected $guarded = ['id']; | ||||
| 
 | ||||
|     protected $visible = [ | ||||
|         'id', | ||||
|         'name', | ||||
|         'type', | ||||
|         'attachment_type', | ||||
|         'transports', | ||||
|         'type_free', | ||||
|         'last_used_at', | ||||
|         'created_at', | ||||
|         'updated_at', | ||||
|     ]; | ||||
|     protected $casts = [ | ||||
|         'aaguid' => Uuid::class, | ||||
|         'counter' => 'integer', | ||||
|         'credential_id' => WebAuthnBase64::class, | ||||
|         'credential_public_key' => WebAuthnBase64::class, | ||||
|         'transports' => 'array', | ||||
|         'trust_path' => TrustPath::class, | ||||
|         'last_used_at' => 'immutable_datetime', | ||||
|     ]; | ||||
| 
 | ||||
|     public function getPublicKeyCredentialSourceAttribute(): PublicKeyCredentialSource | ||||
|     { | ||||
|         return new PublicKeyCredentialSource( | ||||
|             $this->credential_id, | ||||
|             $this->type, | ||||
|             $this->transports, | ||||
|             $this->attestation_type, | ||||
|             $this->trust_path, | ||||
|             $this->aaguid ?? \Ramsey\Uuid\Uuid::uuid4(), | ||||
|             $this->credential_public_key, | ||||
|             (string) $this->user_id, | ||||
|             $this->counter, | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     public function setPublicKeyCredentialSourceAttribute(PublicKeyCredentialSource $source): void | ||||
|     { | ||||
|         $this->credential_id = $source->getPublicKeyCredentialId(); | ||||
|         $this->type = $source->getType(); | ||||
|         $this->transports = $source->getTransports(); | ||||
|         $this->attestation_type = $source->getAttestationType(); | ||||
|         $this->trust_path = $source->getTrustPath(); | ||||
|         $this->aaguid = $source->getAaguid(); | ||||
|         $this->credential_public_key = $source->getCredentialPublicKey(); | ||||
|         $this->counter = $source->getCounter(); | ||||
|         $this->user_id = $source->getUserHandle(); | ||||
|     } | ||||
| 
 | ||||
|     public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo | ||||
|     { | ||||
|         return $this->belongsTo(User::class, "user_id", "id"); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user