Laravel 5.4结合Api路由组和auth中间件?

时间:2017-04-06 12:27:58

标签: php laravel routes laravel-5.4

如何将api路由组与我的auth组合起来,使其具有以下内容:

    <system.web>
  <!-- Setting maxRequestLength to be much greater than default 4096 so that large data may be uploaded e.g. images, docs -->
  <httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" maxRequestLength="204800000" executionTimeout="3600" />
</system.web>
<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral>
      <providerOption name="CompilerVersion" value="v4.0" />
      <providerOption name="WarnAsError" value="false" />
    </compiler>
  </compilers>
</system.codedom>
<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
      <requestLimits maxAllowedContentLength="2200000000" /> 
    </requestFiltering>
  </security>
</system.webServer>
<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  <behaviors>
    <serviceBehaviors>
      <behavior>
        <dataContractSerializer maxItemsInObjectGraph="6553600" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <webHttpBinding>
      <binding maxReceivedMessageSize="6553600" />
    </webHttpBinding>
  </bindings>
</system.serviceModel>

因此,如果我调用默认的api路由:

Route::group(['middleware' => 'auth'], function () { 
   ... 
});

我没有回报价值。

我是api路线的新手,所以我做错了什么。

我找不到api Laravel 5.4的教程

2 个答案:

答案 0 :(得分:1)

像这样的东西

Route::group(['middleware' => 'auth:api'], function(){
   Route::get('user', function(Request $request) {
       dd($request->user());
   });
});

通过ajax传递令牌

var token = <?php json_encode(Auth::user()->api_token); ?>;
$.ajax({
    url:'http://...',
    headers: {
        'Authorization': 'Bearer ' + token
    },
    method: 'POST'
    ...
})

答案 1 :(得分:0)

Route::middleware('auth:api')->get('/user', function () { 
     return Auth::user(); 
});

Route::get('/user', function () { 
         return Auth::user(); 
})->middleware('auth');