Я не знаю ключевое слово для поиска в Google, извините за глупость. Я использую веб-маршрут для загрузки вида и API-маршрут для загрузки данных JSON, например:
- / магазин / категории
- / API / магазин / категории
Я вошел в систему с веб-маршрутом и проверка промежуточного программного обеспечения в порядке, я могу получить имя пользователя по auth () -> user () -> name. Но когда я вызываю jquery ajax с / api / shop / Categories, я получаю сообщение об ошибке «Authenticated.», Я пытаюсь добавить промежуточное программное обеспечение auth: api, но ничего не меняется. Я читаю документ и вижу, что должен включить api_token url. Как использовать API при входе с веб-маршрутом, проверкой промежуточного программного обеспечения?
Вот мой код:
//web route
Route::group(['prefix' => $prefix, 'middleware' => ['auth']], function() {
Route::get('categories', 'CategoryController@getView')->name('category_get_view');
});
// api route
Route::group(['prefix' => $prefix, 'middleware' => ['auth:api']], function() {
Route::get('categories', 'CategoryController@getJson');
Route::get('categories/{category}', 'CategoryController@getDetail');
Route::put('categories/{category}', 'CategoryController@putSave');
Route::post('categories', 'CategoryController@postSave');
Route::delete('categories/{category}', 'CategoryController@deleteSave');
});
// dd($request)
Request {#42
#json: null
#convertedFiles: null
#userResolver: Closure {#399
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#32 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
file: "\vendor\laravel\framework\src\Illuminate\Auth\AuthServiceProvider.php"
line: "85 to 87"
}
#routeResolver: Closure {#412
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#181 …}
}
file: "\vendor\laravel\framework\src\Illuminate\Routing\Router.php"
line: "649 to 651"
}
+attributes: ParameterBag {#44
#parameters: []
}
+request: ParameterBag {#50
#parameters: array:2 [
"key" => null
"page" => "1"
]
}
+query: ParameterBag {#50}
+server: ServerBag {#46
#parameters: array:40 [
"REDIRECT_STATUS" => "200"
"HTTP_HOST" => "backend.local"
"HTTP_CONNECTION" => "keep-alive"
"HTTP_ACCEPT" => "*/*"
"HTTP_X_CSRF_TOKEN" => "BNlGYoppmtl7fljKeQ4TGdNmbGoiuKWTeoLDbKln"
"HTTP_X_REQUESTED_WITH" => "XMLHttpRequest"
"HTTP_USER_AGENT" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
"HTTP_REFERER" => "http://backend.local/shop/categories"
"HTTP_ACCEPT_ENCODING" => "gzip, deflate"
"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.9,ja;q=0.8"
"HTTP_COOKIE" => "XSRF-TOKEN=eyJpdiI6IjNcL0t5aEMxZHNBM2wrNkRvc0RCUUlBPT0iLCJ2YWx1ZSI6InlaTUlLdSt4UXVmdktNZk81ZzNpMWFNQUVqalZZTmNsRmpcLzZiQkkrdTRZZEphODVPYU5qYXdiSkRVMUUra0hJIiwibWFjIjoiMTdlNjUzYmVkYWRiM2JiNDNlMWYzMjQ1MmM0ZmIxMjQ0YzczOWE4NjQ2N2UzNzZmOTkxOGYxYTJjOTE5MmU0NiJ9; laravel_session=eyJpdiI6InpLOUw5SHR6S0RWU21lSEhZMWVEZHc9PSIsInZhbHVlIjoiN1hNZUlNWUJacm83bEdFd3pCR0R1R1d1UVZZdmRcL3g3aXQ3QlhQOHNZZXFJUGVqOFBXS2dKZVFvYjl3NGZoRUsiLCJtYWMiOiI1ZjNhZmFjM2Q1ZjlmYzUwZmQ3ODA0MTJkZGNiMzdlZDhjYTljODViMTY0MTE5ZDA0YTg0ZTJkY2EwYjJmOWJmIn0%3D"
"PATH" => ""
"SystemRoot" => "C:\WINDOWS"
"COMSPEC" => "C:\WINDOWS\system32\cmd.exe"
"PATHEXT" => ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
"WINDIR" => "C:\WINDOWS"
"SERVER_SIGNATURE" => "<address>Apache/2.4.39 (Win64) PHP/7.2.18 Server at backend.local Port 80</address>\n"
"SERVER_SOFTWARE" => "Apache/2.4.39 (Win64) PHP/7.2.18"
"SERVER_NAME" => "backend.local"
"SERVER_ADDR" => "::1"
"SERVER_PORT" => "80"
"REMOTE_ADDR" => "::1"
"DOCUMENT_ROOT" => "/public"
"REQUEST_SCHEME" => "http"
"CONTEXT_PREFIX" => ""
"CONTEXT_DOCUMENT_ROOT" => "/public"
"SERVER_ADMIN" => "wampserver@wampserver.invalid"
"SCRIPT_FILENAME" => "/public/index.php"
"REMOTE_PORT" => "64525"
"REDIRECT_URL" => "/api/shop/categories"
"REDIRECT_QUERY_STRING" => "key=&page=1"
"GATEWAY_INTERFACE" => "CGI/1.1"
"SERVER_PROTOCOL" => "HTTP/1.1"
"REQUEST_METHOD" => "GET"
"QUERY_STRING" => "key=&page=1"
"REQUEST_URI" => "/api/shop/categories?key=&page=1"
"SCRIPT_NAME" => "/index.php"
"PHP_SELF" => "/index.php"
"REQUEST_TIME_FLOAT" => 1570505297.533
"REQUEST_TIME" => 1570505297
]
}
+files: FileBag {#47
#parameters: []
}
+cookies: ParameterBag {#45
#parameters: array:2 [
"XSRF-TOKEN" => "eyJpdiI6IjNcL0t5aEMxZHNBM2wrNkRvc0RCUUlBPT0iLCJ2YWx1ZSI6InlaTUlLdSt4UXVmdktNZk81ZzNpMWFNQUVqalZZTmNsRmpcLzZiQkkrdTRZZEphODVPYU5qYXdiSkRVMUUra0hJIiwibWFjIjoiMTdlNjUzYmVkYWRiM2JiNDNlMWYzMjQ1MmM0ZmIxMjQ0YzczOWE4NjQ2N2UzNzZmOTkxOGYxYTJjOTE5MmU0NiJ9"
"laravel_session" => "eyJpdiI6InpLOUw5SHR6S0RWU21lSEhZMWVEZHc9PSIsInZhbHVlIjoiN1hNZUlNWUJacm83bEdFd3pCR0R1R1d1UVZZdmRcL3g3aXQ3QlhQOHNZZXFJUGVqOFBXS2dKZVFvYjl3NGZoRUsiLCJtYWMiOiI1ZjNhZmFjM2Q1ZjlmYzUwZmQ3ODA0MTJkZGNiMzdlZDhjYTljODViMTY0MTE5ZDA0YTg0ZTJkY2EwYjJmOWJmIn0="
]
}
+headers: HeaderBag {#48
#headers: array:10 [
"host" => array:1 [
0 => "backend.local"
]
"connection" => array:1 [
0 => "keep-alive"
]
"accept" => array:1 [
0 => "*/*"
]
"x-csrf-token" => array:1 [
0 => "BNlGYoppmtl7fljKeQ4TGdNmbGoiuKWTeoLDbKln"
]
"x-requested-with" => array:1 [
0 => "XMLHttpRequest"
]
"user-agent" => array:1 [
0 => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
]
"referer" => array:1 [
0 => "http://backend.local/shop/categories"
]
"accept-encoding" => array:1 [
0 => "gzip, deflate"
]
"accept-language" => array:1 [
0 => "en-US,en;q=0.9,ja;q=0.8"
]
"cookie" => array:1 [
0 => "XSRF-TOKEN=eyJpdiI6IjNcL0t5aEMxZHNBM2wrNkRvc0RCUUlBPT0iLCJ2YWx1ZSI6InlaTUlLdSt4UXVmdktNZk81ZzNpMWFNQUVqalZZTmNsRmpcLzZiQkkrdTRZZEphODVPYU5qYXdiSkRVMUUra0hJIiwibWFjIjoiMTdlNjUzYmVkYWRiM2JiNDNlMWYzMjQ1MmM0ZmIxMjQ0YzczOWE4NjQ2N2UzNzZmOTkxOGYxYTJjOTE5MmU0NiJ9; laravel_session=eyJpdiI6InpLOUw5SHR6S0RWU21lSEhZMWVEZHc9PSIsInZhbHVlIjoiN1hNZUlNWUJacm83bEdFd3pCR0R1R1d1UVZZdmRcL3g3aXQ3QlhQOHNZZXFJUGVqOFBXS2dKZVFvYjl3NGZoRUsiLCJtYWMiOiI1ZjNhZmFjM2Q1ZjlmYzUwZmQ3ODA0MTJkZGNiMzdlZDhjYTljODViMTY0MTE5ZDA0YTg0ZTJkY2EwYjJmOWJmIn0%3D"
]
]
#cacheControl: []
}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/api/shop/categories"
#requestUri: "/api/shop/categories?key=&page=1"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: null
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}