Dawn-Api
ThinkPHP5 RESTful API, который включает в себя обработку запросов API, аутентификацию, автоматическое создание документации и другие функции.
composer require liushoukun/dawn-api
composer create-project topthink/think api --prefer-dist
composer require liushoukun/dawn-api
cd /public/static/
git clone https://git.oschina.net/liushoukun/hadmin.git
<?php
namespace app\demo\controller;
use DawnApi\facade\ApiController;
class Base extends ApiController
{
//是否开启授权认证
public $apiAuth = true;
}
?>
class User extends Base
Дополнительные методы
Если вам нужно добавить некоторые дополнительные операции, такие как отправка кода подтверждения, добавьте метод в список $extraActionList. После регистрации маршрута:
Route::group('v1',function (){
Route::any('user/sendCode','demo/User/sendCode');//необходимо зарегистрировать перед регистрацией ресурса
Route::resource('user','demo/User');
});
Пропустить аутентификацию
Если есть необходимость пропустить аутентификацию для некоторых операций, добавьте метод в список $skipAuthActionList, чтобы пропустить аутентификацию.
protected $skipAuthActionList = ['sendCode']; //метод пропуска аутентификации
Обработка ответов
// Успех
return $this->sendSuccess($data = [], $message = 'success', $code = 200, $headers = [], $options = [])
// Ошибка
return $this->sendError($error = 400, $message = 'error', $code = 400, $data = [], $headers = [], $options = [])
// Перенаправление
return $this-> sendRedirect($url, $params = [], $code = 302, $with = [])
'api_auth' => true, //включить аутентификацию
self::$app['auth']->getUser();
/**
* Аутентифицировать через клиентскую информацию и маршрут и т. д.
* Если успешно, верните true
* @param Request $request
* @return bool
*/
public function authenticate(Request $request)
{
// TODO: Implement authenticate() method.
return true;
}
/**
* Получить информацию о пользователе Интерфейс может напрямую получить информацию о пользователе
* @return mixed
*/
public function getUser()
{
return ['app_id'=>'111','name'=>'dawn-api'];
}
//включать ли аутентификацию
public $apiAuth = true;
Конфигурация (api_auth) | Класс ($apiAuth) | Эффект |
---|---|---|
true | true | Включить аутентификацию |
true | false | Отключить аутентификацию |
false | false | Отключите аутентификацию |
false | true | Отключите аутентификацию |
Простое внедрение Basic & Oauth Client Credentials Grant аутентификация
'auth_class' => \app\demo\auth\BasicAuth::class, //класс аутентификации
/v1/user?client_id=test&secret=test OR v1/user заголовки Basic
'auth_class' => \app\demo\auth\OauthAuth::class, //класс аутентификации
namespace app\demo\controller;
use app\demo\auth\OauthAuth;
use think\Request;
class Auth
{
public function accessToken()
{
$request = Request::instance();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )