婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel框架實現修改登錄和注冊接口數據返回格式的方法

Laravel框架實現修改登錄和注冊接口數據返回格式的方法

熱門標簽:太原400電話申請流程 神龍斗士電話機器人 合肥企業外呼系統線路 電信外呼系統多少錢一個月 宿州正規外呼系統軟件 萍鄉商鋪地圖標注 桂陽公司如何做地圖標注 代理打電話機器人 企業400電話辦理多少費用

本文實例講述了Laravel框架實現修改登錄和注冊接口數據返回格式的方法。分享給大家供大家參考,具體如下:

1、背景:需要將所有的數據返回格式統一成retCode/retMsg/data

2、登陸接口:

文件目錄:app/Http/Controllers/Auth/LoginController

先寫登陸接口是因為修改登錄接口比注冊接口要簡單許多

登錄接口中的第一句

use AuthenticatesUsers;

可以進去修改登錄驗證內容(默認是email+password登錄),可以修改

validateLogin()或者直接修改username(),將email改成name,即可用name+password登錄了

修改登錄接口數據返回格式login()方法

public function login(Request $request)
{
    $this->validateLogin($request);
    if ($this->attemptLogin($request)) {
      $user = $this->guard()->user();
      $user->generateToken();
      $ret=new RetObject();
      $ret->retCode="0000";
      $ret->retMsg='success';
      $ret->data= $user->toArray();
    }else{
      $ret=new RetObject();
      $ret->retCode="0001";
      $ret->retMsg='failed';
      $ret->data= null;
    }
    return response()->json($ret);
}

直接修改login方法中的返回內容就可以了

3、注冊接口

一開始我都不知道register的接口到底是藏在哪

然后看routes/api.php里的

Route::post('register', 'Auth\RegisterController@register');

這里register接口指向的是RegisterController中的 register方法

但是在RegisterController沒有找到register方法,只有registered、validator、create這幾個方法

真正的register方法在第一句的

use RegistersUsers;
RegistersUsers的register
public function register(Request $request)
{
    $this->validator($request->all())->validate();
    event(new Registered($user = $this->create($request->all())));
    $this->guard()->login($user);
    return $this->registered($request, $user)
            ?: redirect($this->redirectPath());
}

這里用到了RegisterController  中的registered、validator、create這幾個方法

成功的情況下,修改數據返回格式比較簡單

直接在RegisterController中的registered()方法中修改

protected function registered(Request $request,$user)
{
  $user->generateToken();
  $ret=new RetObject();
  $ret->retCode="0000";
  $ret->retMsg='register success';
  $ret->data= $user->toArray();
  return response()->json($ret);
}

然后在哪里捕捉異常然后失敗的時候修改數據返回格式,搗鼓了好久。

一開始嘗試直接在RegisterController中的registered()方法中使用try/catch捕捉異常信息,但是每次Debug都不會跳進來,直接在更底層驗證的時候就直接輸出報錯信息了。

try{
  $user->generateToken();
  $ret=new RetObject();
  $ret->retCode="0000";
  $ret->retMsg='register success';
  $ret->data= $user->toArray();
  return response()->json($ret);
}catch (Exception $exception){
  $ret=new RetObject();
  $ret->retCode="0001";
  $ret->retMsg='register failed';
  $ret->data= null;
  return response()->json($ret);
}

最終在app/Exception/Handler.php

report方法是用來將異常寫入日志,render是用來渲染各種異常的瀏覽器輸出

所以我們應該是在render中修改捕捉到異常之后返回數據的格式

public function render($request, Exception $exception)
{
    // This will replace our 404 response with
    // a JSON response.
    if ($exception instanceof ModelNotFoundException 
      $request->wantsJson())
    {
      $ret=new RetObject();
      $ret->retCode="404";
      $ret->retMsg='頁面未找到';
      $ret->data= null;
      return response()->json($ret);
    }elseif ($exception instanceof ValidationException)
    {
      $ret=new RetObject();
      $ret->retCode="0001";
      $ret->retMsg=$exception->getMessage();
      $ret->data= null;
      return response()->json($ret);
    }
    return parent::render($request, $exception);
}

然后起碼是可以自定義捕捉到驗證數據異常ValidationException 時候的返回數據格式了,還有其他的異常也是可以直接在Handler.phprender方法中添加。

補充一下Handler的異常處理的控制器基類:目錄為vendor/laravel/framework/src/Illuminate/Foundation/Exception/Handler.php

中的report和render方法

public function report(Exception $e)
{
    if ($this->shouldntReport($e)) {
      return;
    }
    try {
      $logger = $this->container->make(LoggerInterface::class);
    } catch (Exception $ex) {
      throw $e; // throw the original exception
    }
    $logger->error($e);
}
public function render($request, Exception $e)
{
    $e = $this->prepareException($e);
    if ($e instanceof HttpResponseException) {
      return $e->getResponse();
    } elseif ($e instanceof AuthenticationException) {
      return $this->unauthenticated($request, $e);
    } elseif ($e instanceof ValidationException) {
      return $this->convertValidationExceptionToResponse($e, $request);
    }
    return $this->prepareResponse($request, $e);
}

更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 記Laravel調用Gin接口調用formData上傳文件的實現方法
  • laravel 錯誤處理,接口錯誤返回json代碼
  • 在Laravel中使用GuzzleHttp調用第三方服務的API接口代碼
  • laravel實現一個上傳圖片的接口,并建立軟鏈接,訪問圖片的方法
  • Laravel5.4簡單實現app接口Api Token認證方法
  • Laravel統一封裝接口返回狀態實例講解

標簽:廊坊 白銀 綏化 鄂州 辛集 衡陽 太原 崇左

巨人網絡通訊聲明:本文標題《Laravel框架實現修改登錄和注冊接口數據返回格式的方法》,本文關鍵詞  Laravel,框架,實現,修改,登錄,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel框架實現修改登錄和注冊接口數據返回格式的方法》相關的同類信息!
  • 本頁收集關于Laravel框架實現修改登錄和注冊接口數據返回格式的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品嫩草影院av蜜臀| 国产日韩欧美电影| 久久免费精品国产久精品久久久久| 久久久亚洲精品一区二区三区| 国产一区美女在线| 国产福利精品导航| 国产精品国产自产拍高清av| 国产精品网站在线| 亚洲日本在线观看| 欧美一区二区三区成人| 精品国产乱码久久| 国产成人av电影在线| 欧美一二区视频| 91麻豆免费看| 国产精品白丝av| 亚洲欧美日韩久久精品| 亚洲欧洲精品一区二区精品久久久| 亚洲国产美国国产综合一区二区| 丁香网亚洲国际| 欧美精品精品一区| 亚洲国产日韩一区二区| 99久久久无码国产精品| 国产精品电影一区二区三区| 国产一区二区三区四区五区美女| 3751色影院一区二区三区| 日韩中文字幕1| 7777精品伊人久久久大香线蕉最新版| 一区二区三区在线免费观看| 6080日韩午夜伦伦午夜伦| 亚洲影院久久精品| 欧美性xxxxxxxx| 国产91精品一区二区麻豆网站| 国产乱码精品一区二区三区忘忧草| 久久这里只有精品6| www.亚洲免费av| 午夜一区二区三区在线观看| 欧美一区二区二区| 美女mm1313爽爽久久久蜜臀| 国产精品视频第一区| 欧美日韩精品欧美日韩精品一| 韩国成人在线视频| 亚洲妇女屁股眼交7| 国产清纯白嫩初高生在线观看91| 国产裸体歌舞团一区二区| 中文字幕欧美三区| 欧美一区二区免费| 日韩午夜电影在线观看| 色婷婷av久久久久久久| k8久久久一区二区三区 | 欧美国产亚洲另类动漫| caoporn国产精品| 亚洲视频在线一区观看| 日韩一级片在线观看| 91精品在线麻豆| 欧美成人精品二区三区99精品| 欧美美女一区二区在线观看| 色八戒一区二区三区| 欧美日韩亚洲综合| 色综合天天综合色综合av| av不卡免费在线观看| 成人成人成人在线视频| 国产一区二区伦理| 激情欧美一区二区| 久久成人精品无人区| 久久国产免费看| 国产传媒一区在线| 国产在线精品一区二区| 国产美女在线观看一区| 亚洲成人福利片| 蜜臀久久久久久久| 国产成人免费在线| 一本色道a无线码一区v| 在线中文字幕一区| 日韩欧美在线网站| 精品国产乱码久久久久久牛牛| 亚洲国产激情av| 亚洲一区在线观看视频| 秋霞电影网一区二区| 国产精品一卡二卡| 欧美主播一区二区三区美女| 欧美人与z0zoxxxx视频| 日韩视频在线观看一区二区| 亚洲另类色综合网站| 黑人巨大精品欧美黑白配亚洲| 粉嫩aⅴ一区二区三区四区五区| 欧美视频日韩视频| 亚洲天堂免费在线观看视频| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲午夜精品网| 欧美一区二区三区在线视频 | 欧美日韩国产乱码电影| 美女视频黄频大全不卡视频在线播放| 久久久99精品久久| 卡一卡二国产精品| 91精品国产综合久久久蜜臀图片| 欧美成人三级电影在线| 午夜久久久久久电影| 欧美伊人久久久久久久久影院| 久久久久久久久久久久久女国产乱 | 一本久道久久综合中文字幕| 国产精品久久久久影视| 国产自产2019最新不卡| 日韩精品一区二区三区四区| 久久精品国产99久久6| 精品国偷自产国产一区| 麻豆国产精品777777在线| 2021久久国产精品不只是精品 | 一区二区三区在线看| 欧美性xxxxxxxx| 亚洲va国产天堂va久久en| 精品剧情v国产在线观看在线| 国产精品99久久久久久久女警| 国产欧美精品国产国产专区| 国产成人亚洲综合a∨婷婷图片| 成人午夜激情在线| 老司机精品视频线观看86| 中文字幕一区二区三区精华液 | 色欲综合视频天天天| 五月天亚洲婷婷| 精品国产一区二区三区不卡| 99久久综合国产精品| 日本不卡一二三| 亚洲成人精品影院| 一区二区三区在线观看欧美| 中文字幕欧美国产| 国产欧美日韩不卡| 日韩一区二区免费高清| 在线观看一区不卡| 成人涩涩免费视频| 波多野结衣一区二区三区| 国产电影精品久久禁18| 国内精品久久久久影院一蜜桃| 日韩精品一二三区| 蜜乳av一区二区三区| 亚洲网友自拍偷拍| 日本中文字幕不卡| 五月天激情综合网| 一区二区三区中文免费| 亚洲免费视频中文字幕| 精品久久一区二区三区| 欧美一卡二卡在线| 在线观看av一区二区| 成人av片在线观看| 欧美一a一片一级一片| 亚洲欧美综合色| 国产精品久久久久久久久图文区 | 日本丰满少妇一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 国产午夜精品久久久久久免费视 | 中国色在线观看另类| 精品国产麻豆免费人成网站| 正在播放一区二区| 久久综合色鬼综合色| 国产精品情趣视频| 91小视频免费观看| 亚洲欧美欧美一区二区三区| 亚洲风情在线资源站| 国产精品福利电影一区二区三区四区| 日韩一级二级三级| 欧美视频中文字幕| 久久综合九色综合欧美98| 精品国产伦一区二区三区观看方式 | 欧美区一区二区三区| 欧美三级电影在线看| 欧美在线观看禁18| 99久久精品久久久久久清纯| av在线免费不卡| 日韩精品一区二| 国产精品萝li| 99在线精品观看| 国产伦精品一区二区三区免费| 亚洲另类春色校园小说| 久久精品日产第一区二区三区高清版| 黑人精品欧美一区二区蜜桃| 91麻豆精品一区二区三区| 国产一区二区视频在线| 亚洲二区在线视频| 中文字幕亚洲综合久久菠萝蜜| 中文字幕精品三区| 波多野结衣精品在线| 18欧美亚洲精品| 三级久久三级久久| 欧美性高清videossexo| 日av在线不卡| 看电影不卡的网站| 91精品国产综合久久香蕉麻豆| 亚洲自拍偷拍图区| 精品福利视频一区二区三区| 久久一区二区三区四区| 成人丝袜18视频在线观看| 欧美一卡2卡3卡4卡| 韩国精品免费视频| 日韩精品免费视频人成| 欧美日韩亚洲国产综合| 九九热在线视频观看这里只有精品| 日本一区二区在线不卡| 欧美日韩国产免费一区二区 | 欧美调教femdomvk| 亚洲综合成人在线视频| 日韩三级av在线播放|