iamxid/iamx-wallet-pro

此软件包允许用户使用IAMX钱包登录到Laravel项目,并使用IAMX身份钱包进行数据签名、验证、加密和解密。

dev-main 2024-03-22 09:00 UTC

This package is auto-updated.

Last update: 2024-09-22 10:10:51 UTC


README

IAMX钱包专业版是一个Laravel包,用于使用IAMX身份钱包登录到Laravel应用程序,并使用IAMX身份钱包进行签名、验证、加密和解密数据。

安装

使用composer安装当前版本的iamxid/iamx-wallet-pro软件包

    composer require iamxid/iamx-wallet-pro:dev-main

配置

发布迁移文件

    php artisan vendor:publish --provider="IAMXID\IamxWalletPro\IamxWalletProServiceProvider" --tag="migrations"

运行迁移

    php artisan migrate

将作用域添加到.env文件中。示例

IAMX_IDENTITY_SCOPE={"did":"","person":{},"vUID":{},"address":{},"email":{},"mobilephone":{}}

将重定向URL添加到.env文件中。示例

IAMX_IDENTITY_CONNECT_REDIRECT_URL="/page_to_load_after_login"

使用方法

将属性"iamx_vuid"添加到/app/Models/User.php中的$fillable数组中

    protected $fillable = [
        'name',
        'email',
        'password',
        'iamx_vuid'
    ];

将HasDID特质添加到/app/Models/User.php中的用户模型中

use IAMXID\IamxWalletPro\Traits\HasDID;

class User extends Model
{
    use HasDID;
    ...
}

将组件<x-iamxwalletpro-identity-connector />放置在您的blade模板中,以插入钱包连接代码段。

将组件<x-iamxwalletpro-identity-sign />放置在您的blade模板中,以插入签名数据代码段。

将组件<x-iamxwalletpro-identity-verify />放置在您的blade模板中,以插入验证数据代码段。

将组件<x-iamxwalletpro-identity-encrypt />放置在您的blade模板中,以插入加密数据代码段。

将组件<x-iamxwalletpro-identity-decrypt />放置在您的blade模板中,以插入解密数据代码段。

使用类btn-identity-connectcontainer-identity-connect在您的css文件中设置连接按钮和容器的样式。

使用类btn-identity-signDatacontainer-identity-signDatainput-label-signData在您的css文件中设置签名数据按钮、容器和输入字段的样式。

使用类btn-identity-verifyDatacontainer-identity-verifyDatainput-label-verifyData在您的css文件中设置验证数据按钮、容器和输入字段的样式。

使用类btn-identity-encryptDatacontainer-identity-encryptDatainput-label-encryptData在您的css文件中设置加密数据按钮、容器和输入字段的样式。

使用类btn-identity-decryptDatacontainer-identity-decryptDatainput-label-decryptData在您的css文件中设置解密数据按钮、容器和输入字段的样式。

@tailwind base;
@tailwind components;

.container-identity-connect {
    @apply m-5
}

.container-identity-signData {
    @apply m-5 p-2 border-2 border-black
}

.container-identity-verifyData {
    @apply m-5 p-2 border-2 border-black
}

.container-identity-encryptData {
    @apply m-5 p-2 border-2 border-black
}
.container-identity-decryptData {
    @apply m-5 p-2 border-2 border-black
}


.btn-identity-connect {
    @apply bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded
}

.btn-identity-signData {
    @apply bg-green-500 hover:bg-green-700 text-white font-bold py-2 px-4 rounded mt-1
}

.btn-identity-verifyData {
    @apply bg-emerald-500 hover:bg-emerald-700 text-white font-bold py-2 px-4 rounded mt-1
}

.btn-identity-encryptData {
    @apply bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded mt-1
}

.btn-identity-decryptData {
    @apply bg-orange-500 hover:bg-orange-700 text-white font-bold py-2 px-4 rounded mt-1
}

.input-verifyData {
    @apply bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500
}

.input-label-verifyData {
    @apply block mb-2 text-sm font-medium text-gray-900 dark:text-white
}

.input-signData {
    @apply bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500
}

.input-label-signData {
    @apply block mb-2 text-sm font-medium text-gray-900 dark:text-white
}

.input-encryptData {
    @apply bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500
}

.input-label-encryptData {
    @apply block mb-2 text-sm font-medium text-gray-900 dark:text-white
}

.input-decryptData {
    @apply bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500
}

.input-label-decryptData {
    @apply block mb-2 text-sm font-medium text-gray-900 dark:text-white
}

@tailwind utilities;

示例

在您的应用程序中使用HasDID特质中的函数来访问IAMX钱包属性

获取单个属性

$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);

获取某一类别的所有属性

$user = User::find(1);
$allCategoryValues = $user->getDIDCategoryValues('address', $user->id);

获取所有可用属性

$user = User::find(1);
$allValues = $user->getAllDIDValues($user->id);

错误和建议

版权和许可

MIT