atomjoy / webi
Laravel web rest api 认证库。
v9.0.3
2023-03-05 13:32 UTC
Requires
- php: ^8.1
- laravel/framework: ^10.0
README
Laravel web rest api 认证库。
安装(Laravel 10, Php 8.1)
首先设置 .env 变量(mysql, smtp),然后
composer require atomjoy/webi
用户模型
// app/Models/User.php <?php namespace App\Models; use Webi\Models\WebiUser; class User extends WebiUser { function __construct(array $attributes = []) { parent::__construct($attributes); $this->mergeFillable([ // 'mobile', 'website' ]); $this->mergeCasts([ // 'status' => StatusEnum::class, // 'email_verified_at' => 'datetime:Y-m-d H:i:s', ]); // $this->hidden[] = 'secret_hash'; } protected $dispatchesEvents = [ // 'saved' => UserSaved::class, // 'deleted' => UserDeleted::class, ]; }
创建登录页面
// routes/web.php Route::get('/login', function() { return 'My login page'; // return view('vue'); })->name('login');
创建激活页面
// routes/web.php use Webi\Http\Controllers\WebiActivate; // Create your own activation page for Vue, Laravel Route::get('/activate/{id}/{code}', [YourActivationController::class, 'index'])->middleware(['webi-locale']); // Or for tests use json controller from Webi\Http\Controllers\WebiActivate.php Route::get('/activate/{id}/{code}', [WebiActivate::class, 'index'])->middleware(['webi-locale']);
将翻译复制到 app lang 中(仅用于测试)
php artisan lang:publish php artisan vendor:publish --tag=webi-lang-en --force php artisan vendor:publish --tag=webi-lang-pl --force
创建数据库表
# Create tables php artisan migrate # Refresh tables php artisan migrate:fresh # Seed data (optional) php artisan db:seed --class=WebiSeeder
运行应用程序
php artisan serve
测试
测试说明文件位置
tests/README.md
设置(可选)
自定义
# Edit email blade themes php artisan vendor:publish --tag=webi-email # Edit lang translations php artisan vendor:publish --tag=webi-lang # Edit config php artisan vendor:publish --tag=webi-config # Override config php artisan vendor:publish --tag=webi-config --force # Add the image logo to your mail php artisan vendor:publish --tag=webi-public # Provider php artisan vendor:publish --provider="Webi\WebiServiceProvider.php"
表种子
php artisan db:seed --class=WebiSeeder
更新类
composer update composer dump-autoload -o composer update --no-dev
Web API 请求
以 json 格式发送请求。响应为 json:{'message', "user"}。更多请参阅:src/Http/Requests 和 src/Http/Controllers 目录或 routes 文件 routes/web.php。
/web/api/login
方法:POST
Params: 'email', 'password', 'remember_me' Data: {'message', "user"}
/web/api/register
方法:POST
Params: 'name', 'email', 'password', 'password_confirmation' Data: {'message', 'created'}
/web/api/reset
方法:POST
Params: 'email' Data: {'message'}
/web/api/activate/{id}/{code}
方法:GET
Params: 'id', 'code' Data: {'message'}
/web/api/logout
方法:GET
Params: without params
Data: {'message'}
/web/api/locale/{locale}
方法:GET
Params: 'locale' Data: {'message', 'locale'}
/web/api/csrf
方法:GET
Params: without params Data: {'message', 'counter', 'locale'}
/web/api/logged
方法:GET
Params: without params Data: {'message', 'locale', "user"}
/web/api/change-password
方法:POST 认证:true
Params: 'password_current', 'password', 'password_confirmation' Data: {'message'}
/web/api/test/user, /web/api/test/worker, /web/api/test/admin
方法:GET 认证:true
Params: without params Data: {'message', "user", 'ip'}