elnooronline / laravel-api-authentication
此包已废弃,不再维护。未建议替代包。
此包曾用于在RESTful API中搭建基本登录、注册和重置密码功能。
v2.0.1
2020-03-04 21:03 UTC
Requires
- laravel-notification-channels/onesignal: ^2.0
- laravel/framework: 5.5.*|5.6.*|5.7.*|5.8.*|^6.0
- laravel/passport: ^7.0
Requires (Dev)
- mockery/mockery: ^1.2
- orchestra/testbench: ~3.0
README
此包曾用于在RESTful API中搭建基本登录、注册和重置密码功能。
通过 Composer 安装
composer require elnooronline/laravel-api-authentication
在
\App\User
模型中导入以下特性
use Illuminate\Foundation\Auth\User as Authenticatable; use Elnooronline\LaravelApiAuthentication\Models\Traits\HasApiAuthentication; class User extends Authenticatable { use HasApiAuthentication, Notifiable; ... }
迁移
必须发布迁移文件以创建认证表。
php artisan vendor:publish --tag api-authentication:migration
然后运行以下命令
php artisan migrate && php artisan passport:install
配置
安装后,如果您想覆盖包中的任何内容,请运行以下命令。
php artisan vendor:publish --tag api-authentication:config
// config/api-authentication.php return [ /** * The name of user model. */ 'user-model' => \App\User::class, /** * Determine whether the application support register service. */ 'register' => true, /** * The resource transformer for the user model. */ 'user-resource' => \Elnooronline\LaravelApiAuthentication\Http\Resources\UserResource::class, /** * The name of onesignal player id field. */ 'player-id-field-name' => 'onesignal-player-id', /** * The urls of the authentications services. */ 'urls' => [ 'login' => '/api/login', 'register' => '/api/register', 'forget' => '/api/password/forget', 'check-code' => '/api/password/check-code', 'reset' => '/api/password/reset', ], /** * The authentications controllers. */ 'controllers' => [ 'login' => \Elnooronline\LaravelApiAuthentication\Http\Controllers\Auth\LoginController::class, 'register' => \Elnooronline\LaravelApiAuthentication\Http\Controllers\Auth\RegisterController::class, 'forget' => \Elnooronline\LaravelApiAuthentication\Http\Controllers\Auth\ForgotPasswordController::class, 'reset' => \Elnooronline\LaravelApiAuthentication\Http\Controllers\Auth\ResetPasswordController::class, ], /** * The authentications validation requests. */ 'validation' => [ 'login' => \Elnooronline\LaravelApiAuthentication\Http\Requests\LoginRequest::class, 'register' => \Elnooronline\LaravelApiAuthentication\Http\Requests\RegisterRequest::class, 'forget' => \Elnooronline\LaravelApiAuthentication\Http\Requests\ForgetPasswordRequest::class, 'check-code' => \Elnooronline\LaravelApiAuthentication\Http\Requests\CheckCodeRequest::class, 'reset' => \Elnooronline\LaravelApiAuthentication\Http\Requests\ResetPasswordRequest::class, ], ];
如果您想添加自己的登录、注册或重置密码,应创建自定义控制器和请求并扩展包类。
示例
// app/Http/Controllers/Api/LoginController.php namespace App\Http\Controllers\Api\Auth; use Elnooronline\LaravelApiAuthentication\Http\Controllers\Auth\LoginController as BaseLoginController; class LoginController extends BaseLoginController { ... }
然后更新 api-authentication.php
并替换登录控制器
return [ ... 'controllers' => [ 'login' => \App\Http\Controllers\Auth\LoginController::class, ... ], ... ];
您还可以在
api-authentication.php
配置文件中添加自己的用户资源类
return [ ... 'user-resource' => \App\Http\Resources\UserResource::class, ... ];
事件
如果您想在认证过程中添加事件,您可以在
EventServiceProvider
中附加监听器。
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Registered' => [ 'App\Listeners\LogRegisteredUser', ], 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\LogSuccessfulLogin', ], 'Illuminate\Auth\Events\Failed' => [ 'App\Listeners\LogFailedLogin', ], 'Illuminate\Auth\Events\Lockout' => [ 'App\Listeners\LogLockout', ], 'Elnooronline\LaravelApiAuthentication\Events\ResetPasswordCodeGenerated' => [ 'Elnooronline\LaravelApiAuthentication\Listeners\ResetPasswordListener', ], ];
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。