IAMX wallet connect is a Laravel package to login to a laravel application using the IAMX identity wallet.
Install the current version of the iamxid/iamx-wallet-connect
package via composer:
composer require iamxid/iamx-wallet-connect:dev-main
Publish the migration file:
php artisan vendor:publish --provider="IAMXID\IamxWalletConnect\IamxWalletConnectServiceProvider" --tag="migrations"
Run the migration:
php artisan migrate
Add the scope to the .env file. Example:
IAMX_IDENTITY_SCOPE={"did":"","person":{},"vUID":{},"address":{},"email":{},"mobilephone":{}}
Add the redirect URL to the .env file. Example:
IAMX_IDENTITY_CONNECT_REDIRECT_URL="/page_to_load_after_login"
Add the attribute "iamx_vuid" to the $fillable array in /app/Models/User.php
protected $fillable = [
'name',
'email',
'password',
'iamx_vuid'
];
Add the HasDID trait to the user model in /app/Models/User.php
use IAMXID\IamxWalletConnect\Traits\HasDID;
class User extends Model
{
use HasDID;
...
}
Place the component <x-iamxwalletconnect-identity-connector />
in your blade template to insert the wallet connect
button.
Style the connect button and the container in your css file using the classes btn-identity
and container-btn-identity
:
@tailwind base;
@tailwind components;
.container-btn-identity {
@apply m-5
}
.btn-identity {
@apply bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded
}
@tailwind utilities;
Use the functions in the HasDID trait in your application to access the IAMX wallet attributes:
Fetch single attributes:
$user = User::find(1);
$street = $user->getDIDAttribute('address', 'street', $user->id);
$housenr = $user->getDIDAttribute('address', 'housenr', $user->id);
$zip = $user->getDIDAttribute('address', 'zip', $user->id);
Fetch all attributes of a category:
$user = User::find(1);
$allCategoryValues = $user->getDIDCategoryValues('address', $user->id);
Fetch all available attributes:
$user = User::find(1);
$allValues = $user->getAllDIDValues($user->id);