alexandrfiner / vkma
:package_description
0.1.10
2022-07-24 08:36 UTC
Requires
- illuminate/bus: ~7|~8
- illuminate/contracts: ~7|~8
- illuminate/database: ~7|~8
- illuminate/http: ~7|~8
- illuminate/support: ~7|~8
- vkcom/vk-php-sdk: ^5.101
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3|~4
- phpunit/phpunit: ^8.0
- roave/security-advisories: dev-master
- sempro/phpunit-pretty-print: ^1.0
README
这里应该放置你的描述。查看 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 参数的 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。请参阅 许可文件 了解更多信息。