alive2212/laravel-mobile-passport

这是一个基于OAuth2 Base的一次性认证(OTP)的Laravel扩展包

v4.0.8 2023-11-30 12:15 UTC

README

Latest Version on Packagist Total Downloads Build Status StyleCI

这里应该放置您的描述。请参阅contributing.md以查看待办事项列表。

安装

通过Composer

$ composer require alive2212/laravel-mobile-passport

添加到 'config/app.php' 中的服务提供者

    'providers' => [
        ...
        
        /*
         * Authentication service
         */
        Alive2212\LaravelMobilePassport\LaravelMobilePassportServiceProvider::class,
    ],

如果使用Lumen,请在 'bootstrap/app.php' 的末尾添加以下服务提供者

$app->register(Alive2212\LaravelMobilePassport\LaravelMobilePassportServiceProvider::class);

$app->router->group([
    'namespace' => 'Alive2212\LaravelMobilePassport\Http\Controllers',
], function ($router) {
    require Alive2212\LaravelMobilePassport\LaravelMobilePassport::getDir() .
        '/lumen_routes.php';
});

迁移所有数据库

$ php artisan migrate

在 AuthServiceProvider 的 'boot' 方法中添加以下代码

public function boot()
{
    $this->registerPolicies();

    Passport::routes();

    LaravelMobilePassport::initPassportTokenCan();

    LaravelMobilePassportSingleton::$otpCallBack = function (
        Request $request,
        User $user,
        AliveMobilePassportDevice $device,
        $token
    ) {
        // dispatch send sms job here to send notification

    };
    
    
    LaravelMobilePassportSingleton::$otpConfirmCallBack = function (
        Request $request,
        User $user,
        PersonalAccessTokenResult $token,
        ResponseModel $response
    ) {
        // put something here like update user name with request fields
        
    };
    
}
  • 提示:如果 .env 文件中的 ENV_DEBUG 设置为 false,则不要在 register by token 中返回任何数据

将 'phone_number' 和 'country_code' 添加到模型 $fillable 变量中

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

使用以下命令发布供应商文件

php artisan vendor:publish --tag laravel-mobile-passport.lang
php artisan vendor:publish --tag laravel-mobile-passport.config
php artisan vendor:publish --tag laravel-mobile-passport.migrations
php artisan vendor:publish --tag laravel-mobile-passport.models

用户模型必须从 BaseAuthModel 扩展

在下一步中,您应安装以下包及其与您的Laravel版本相关的版本。

  • phoenix/eloquent-meta
  • fico7489/laravel-pivot

将以下代码添加到 app/User.php

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
     */
    public function roles()
    {
        return $this->belongsToMany(
            AliveMobilePassportRole::class,
            'alive_mobile_passport_role_user',
            'user_id',
            'role_id'
        );
    }

最后,运行以下命令以安装 passport 依赖项

$ art passport:install

可选:如果要添加路由,可以将以下内容放入 AppServiceProvider 的 boot 方法中

// add mobile passport routes
LaravelMobilePassport::routes(null,['middleware'=>'cors']);

用法

1- 在 alive_mobile_passport_roles 中创建您想要的角色 *提示:角色的标题必须是唯一的

您可以使用以下方式获取当前用户的范围

$request['access_token'])

变更日志

请参阅changelog以获取最近更改的更多信息。

测试

$ composer test

此包与其他包的关系是

  • array helper -> nothing
  • laravel excel helper -> nothing
  • laravel onion pattern -> nothing
  • laravel query helper -> nothing
  • laravel reflection helper -> nothing
  • laravel request helper -> nothing
  • laravel string helper -> nothing
  • laravel smart response -> array helper
  • laravel smart restful -> laravel excel helper, laravel onion pattern, laravel query helper, laravel reflection helper, laravel smart response, laravel string helper
  • laravel passport auth -> laravel smart restful

贡献

请参阅contributing.md以获取详细信息及待办事项列表。

安全

如果您发现任何与安全相关的问题,请通过作者电子邮件而不是问题跟踪器来联系。

致谢

许可协议

许可协议。请参阅许可文件以获取更多信息。