All Projects → lonycc → Laravel_admin_api

lonycc / Laravel_admin_api

基于laravel5.5开发的基础后台管理脚手架, RBAC权限控制; 接口基于dingo/api和tymon/jwt, 可在此基础上完成你的laravel项目

Projects that are alternatives of or similar to Laravel admin api

Laravel Jwt
Laravel with JWT Authentication for API development
Stars: ✭ 31 (-47.46%)
Mutual labels:  api, laravel, jwt-auth
Laravel Api Boilerplate
A Boilerplate Project For Laravel API's (NOT MAINTAINED)
Stars: ✭ 113 (+91.53%)
Mutual labels:  api, laravel, jwt-auth
Laravel Tabler
Laravel Package for integrating Tabler template and this package is Laravel Mix friendly.
Stars: ✭ 20 (-66.1%)
Mutual labels:  laravel, admin
Api Tester
API tester for laravel-admin
Stars: ✭ 38 (-35.59%)
Mutual labels:  api, laravel
Lara Eye
Filter your Query\Builder using a structured query language
Stars: ✭ 39 (-33.9%)
Mutual labels:  api, laravel
Laravel Boilerplate
Laravel Boilerplate / Starter Kit with Gentelella Admin Theme
Stars: ✭ 704 (+1093.22%)
Mutual labels:  laravel, admin
Base
Until 2018, Backpack v3 used this Base package to offer admin authentication and a blank admin panel using AdminLTE. Backpack v4 no longer uses this package, they're now built-in - use Backpack/CRUD instead.
Stars: ✭ 848 (+1337.29%)
Mutual labels:  laravel, admin
Enso
Laravel Vue SPA, Bulma themed. For demo login use `[email protected]el-enso.com` & `password` -
Stars: ✭ 959 (+1525.42%)
Mutual labels:  laravel, admin
Builder
Prepare your Laravel apps incredibly fast, with various commands, services, facades and boilerplates.
Stars: ✭ 1,009 (+1610.17%)
Mutual labels:  api, laravel
Cursor Pagination
Cursor pagination for your Laravel API
Stars: ✭ 47 (-20.34%)
Mutual labels:  api, laravel
Laravel Janitor
🔑 Easily add login proxy to your Laravel API
Stars: ✭ 54 (-8.47%)
Mutual labels:  laravel, jwt-auth
Rapid.js
An ORM-like Interface and a Router For Your API Requests
Stars: ✭ 700 (+1086.44%)
Mutual labels:  api, laravel
Laravel Responder
A Laravel Fractal package for building API responses, giving you the power of Fractal with Laravel's elegancy.
Stars: ✭ 673 (+1040.68%)
Mutual labels:  api, laravel
Binding Of Isaac Api
A RESTful API for the Binding of Isaac game series
Stars: ✭ 11 (-81.36%)
Mutual labels:  api, laravel
Sleepingowladmin
🦉 Administrative interface builder for Laravel (Laravel admin)
Stars: ✭ 671 (+1037.29%)
Mutual labels:  laravel, admin
Youtube
🔥 Laravel PHP Facade/Wrapper for the Youtube Data API
Stars: ✭ 610 (+933.9%)
Mutual labels:  api, laravel
Lumen Api Starter
Quickstarter for Lumen
Stars: ✭ 54 (-8.47%)
Mutual labels:  api, laravel
Qor
QOR is a set of libraries written in Go that abstracts common features needed for business applications, CMSs, and E-commerce systems.
Stars: ✭ 4,905 (+8213.56%)
Mutual labels:  api, admin
Ecommerce Open Api
果酱小店:基于 Laravel + swoole + 小程序的开源电商系统,优雅与性能兼顾 : )
Stars: ✭ 546 (+825.42%)
Mutual labels:  api, laravel
Laravel Compass
A REST client inside your Laravel app
Stars: ✭ 1,002 (+1598.31%)
Mutual labels:  api, laravel

Build Status

laravel5.5 后台管理

启动步骤

1 先clone本项目:git clone https://github.com/tonyxyl/laravel_admin_api.git

2 安装PHP依赖库:composer install

3 修改.env数据库配置信息

4 执行迁移命令: php artisan migrate

5 执行数据填充: php artisan db:seed --class=PermissionSeeder

6 启动服务: php artisan serve

注意

添加操作管理的数据的时候,命名空间、类名、方法名请根据实际情况添加,不要添加不存在的命名空间、类,否则程序会报错. 当添加不存在的命名空间、类名、方法名的时候,程序在生成URL的时候会提示找不到相应的类

开始

浏览器打开 http://localhost:8000/admin/login 进入登录界面:

用户角色:用户名/密码

管理员账号:admin/123456

api调用测试

注册用户

curl -X POST -F "name=test" -F "[email protected]" -F "password=test1234" "http://localhost:8000/api/auth/signup"

返回结果

{
  "code":200,
  "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hcGkvYXV0aC9zaWdudXAiLCJpYXQiOjE1MTYxNTM3MDcsImV4cCI6MTUxNjE1NzMwNywibmJmIjoxNTE2MTUzNzA3LCJqdGkiOiJkOUQ5N250MzNOVWFvSXM1In0.3GIsMuQhRXXwO4vIn7kLR9BhW3kcbNxZw0vUGgqvEDw"
}

登录

curl -X POST -F "name=test" -F "password=test1234" "http://localhost:8000/api/auth/login"

返回结果

{
  "code":200,
  "message":"token生成成功",
  "data":{
    "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hcGkvYXV0aC9sb2dpbiIsImlhdCI6MTUxNjE1Mzc3NCwiZXhwIjoxNTE2MTU3Mzc0LCJuYmYiOjE1MTYxNTM3NzQsImp0aSI6IlV0dnhuaVFRc3M4bjFUaDEifQ.lNguCrjUvukdr4lQekxvnJxySX6rn0ab-g7RpVeiL10"
  }
}

注意: 你可以改成用邮箱和密码去认证登录, 需要改动app/Api/V1/Controllers/AuthController.php中的getCredentials方法, 改成return $request->only('email', 'password');即可.

请求权限数据

curl -X GET -H "Authorization: Bearer 上面获取到的token" "http://localhost:8000/api/auth/user"

返回结果

{
  "code": 200,
  "message": "已授权的用户",
  "data": {
    "id": 1,
    "email": "[email protected]",
    "name": "test",
    "created_at": null,
    "updated_at": null
  }
}

刷新授权

curl -X PATCH -H "Authorization: Bearer 上面获取到的token" "http://localhost:8000/api/auth/refresh"

返回结果

{
  "code": 200,
  "message": "token刷新成功",
  "data": {
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hcGkvYXV0aC9yZWZyZXNoIiwiaWF0IjoxNTE2MTUzNzc0LCJleHAiOjE1MTYxNTc4NzAsIm5iZiI6MTUxNjE1NDI3MCwianRpIjoiSHNYclNGc1h1eGdUOVVmdCJ9.7d-kK_Bnva9W5U2dzBNVhvFaGcLbY7Ikqm891uqiXEE"
  }
}

删除授权

curl -X DELETE "Authorization: Bearer 上面获取到的token" "http://localhost:8000/api/auth/invalidate"

返回结果

{
  "code": 200,
  "message": "token删除成功"
}

接入其他应用实现单点登录的方式

其他应用需要实现一个验证逻辑, 拿到登录后的token请求/api/auth/user接口, 如果能获取到用户信息则鉴权成功, 执行登录; 否则跳回到统一登录入口.

后台截图

登录页面

后台首页

用户管理

角色管理

操作管理

常用的第三方服务包

图形验证码

composer require mews/captcha

Mews\Captcha\CaptchaServiceProvider::class,

'Captcha' => Mews\Captcha\Facades\Captcha::class,

php artisan vendor:publish #生成config/captcha.php

图片处理扩展包

composer require intervention/image

Intervention\Image\ImageServiceProvider::class,

'Image' => Intervention\Image\Facades\Image::class,

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5" #生成config/image.php

// 修改指定图片的大小

$img = Image::make('images/avatar.jpg')->resize(200, 200);

// 插入水印, 水印位置在原图片的右下角, 距离下边距 10 像素, 距离右边距 15 像素

$img->insert('images/watermark.png', 'bottom-right', 15, 10);

// 将处理后的图片重新保存到其他路径

$img->save('images/new_avatar.jpg');

// 上面的逻辑可以通过链式表达式搞定

$img = Image::make('images/avatar.jpg')->resize(200, 200)->insert('images/new_avatar.jpg', 'bottom-right', 15, 10);

excel服务

composer require "maatwebsite/excel:~2.1.0"

Maatwebsite\Excel\ExcelServiceProvider::class,

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" #生成config/excel.php

pdf 服务

composer require barryvdh/laravel-dompdf

Barryvdh\DomPDF\ServiceProvider::class,

'PDF' => Barryvdh\DomPDF\Facade::class,

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" #生成config/dompdf.php

html过滤包

composer require mews/purifier

Mews\Purifier\PurifierServiceProvider::class,

'Purifier' => Mews\Purifier\Facades\Purifier::class,

php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider" #生成config/purifier.php

clean(Input::get('inputname'));

Purifier::clean(Input::get('inputname'));

浏览器跨域

composer require barryvdh/laravel-cors

Barryvdh\Cors\ServiceProvider::class,

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider" #生成config/cors.php

根据ip获取地址位置

composer require "zhuzhichao/ip-location-zh"

'Ip' => 'Zhuzhichao\IpLocationZh\Ip::class,

Ip::find('171.12.10.156') or Ip::find(Request::getClientIp())

laravel队列

配置文件config/queue.php, 可选驱动sync/database/sqs/redis

若使用database驱动, 需要执行 php artisan queue:tablephp aritsan migrate 以创建表.

若使用redis驱动, 需要配置config/databse.php里的redis项; 需要安装依赖predis/predis.

执行 php artisan make:job SendReminderEmail 将在 app/Jobs 目录下生成 SendReminderEmail.php

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].