atomjoy/webi-mini

Laravel Web REST API 身份验证库。

v1.0.0 2023-03-05 12:07 UTC

This package is not auto-updated.

Last update: 2024-09-16 19:03:35 UTC


README

Laravel REST API 身份验证。

安装(Laravel 10,Php 8.1)

首先设置你的 .env 变量(mysql,smtp),然后

composer require atomjoy/webi-mini

用户模型

// 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([
      // 'role' => UserRole::class,
      // '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/Requestssrc/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'}