:package_description

0.1.9 2020-09-23 16:02 UTC

This package is auto-updated.

Last update: 2024-09-24 01:05:42 UTC


README

Latest Version on Packagist Total Downloads StyleCI

这里应该放您的描述。请查看 contributing.md 了解待办事项列表。

安装

通过 Composer

$ composer require ezavalishin/vkma

发布配置

$ php artisan vendor:publish --provider="ezavalishin\VKMA\VKMAServiceProvider"

用法

身份验证

该包提供 auth 驱动 vkma

您可以将它放在 config/auth.php

'guards' => [
    ...
    'vkma' => [
        'driver' => 'vkma'
    ]
], 

Guard 通过 vk_user_key 在您的数据库中获取或创建用户

接下来,您可以使用中间件 auth:vkma 并发送带有 base64 编码的 vk launch params 的 header Vk-Params 的请求

示例

JavaScript

let instance = axios.create({
  headers: {
    common: {        // can be common or any other method
      'Vk-Params': btoa(window.location.search.substring(1))
    }
  }
})

Laravel

$user = Auth::user();

从 vk 填充用户

该包提供 Job FillUser,用于从 vk 中填充您的数据库数据

准备

您应该实现 VKMAUserInterface 并使用 trait VKMAUserable,同时映射 vk 字段

use Illuminate\Foundation\Auth\User as Authenticatable;

use ezavalishin\VKMA\Contracts\VKMAUserInterface;
use ezavalishin\VKMA\Traits\VKMAUserable;

class User extends Authenticatable implements VKMAUserInterface
{
    use VKMAUserable;

    public function vkFieldsMap(): array
    {
        return [
            //db field => vk field name

            'first_name' => 'first_name',
            'last_name' => 'last_name',
            'birth_date' => 'bdate',
            'city_id' => 'city',
            'country_id' => 'country'
        ];
    }
}

现在您可以通过调度作业轻松填充您的用户模型

dispatch(new \ezavalishin\VKMA\Jobs\FillUser($user));

或者您可以在用户创建时进行操作,只需在您的模型中添加即可

use Illuminate\Foundation\Auth\User as Authenticatable;
use ezavalishin\VKMA\Contracts\VKMAUserInterface;
use ezavalishin\VKMA\Traits\VKMAUserable;

use ezavalishin\VKMA\Jobs\FillUser;

class User extends Authenticatable implements VKMAUserInterface
{
    use VKMAUserable;
    
    ...

    public static function booted()
    {
        self::created(static function(self $model) {
            dispatch(new FillUser($model));
        });
    }
}

自定义解析器

当作业从 vk 获取字段时,您可以轻松更改其格式

在您的模型中添加公共方法 parse{VkFieldName}(驼峰命名法)并返回要存储在数据库中的值

示例

use Illuminate\Foundation\Auth\User as Authenticatable;
use ezavalishin\VKMA\Contracts\VKMAUserInterface;
use ezavalishin\VKMA\Traits\VKMAUserable;

class User extends Authenticatable implements VKMAUserInterface
{
    use VKMAUserable;
    
    ...

    public function parseCountry($value)
    {
        return $value['id'];
    }

    public function parseCity($value)
    {
        return $value['id'];
    }
}

变更日志

请参阅 changelog 了解最近更改的更多信息。

测试

$ composer test

贡献

请参阅 contributing.md 了解详情和待办事项列表。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 ezavalishin@gmail.com 而不是使用问题跟踪器来报告。

致谢

许可证

MIT。请参阅 许可证文件 了解更多信息。