Когда я вхожу в laravel с помощью ajax, я получаю ответ об успешном завершении, и после этого я делаю запрос на получение из раздела об успешном завершении, вызывая метод для получения данных о некоторых магазинах, затем он перенаправляется на страницу входа (например, если яне вошел в систему) В почтальоне это работает отлично даже в том случае, если мои маршруты находятся внутри или за пределами промежуточного программного обеспечения аутентификации (я использую внешний одиночный html-файл вместо представлений laravel) Вот мой код: 1 - web.php
Auth::routes();
Route::group(['middleware' => 'auth:web'], function () {
Route::get( 'shops/likedshops/', 'ShopUserController@liked_shopes' );
Route::resource( 'shops', 'ShopController', [
'except' => [
'create',
'store',
'edit',
'update',
'destroy'
]
] );
Route::resource( 'shopusers', 'ShopUserController', [
'except' => [
'create',
'show',
'edit',
]
]);
});
2: ShopUserController.php
<?php
namespace App\Http\Controllers;
use App\Jobs\DeleteDislikedShop;
use Illuminate\Http\Request;
use App\ShopUser;
use App\User;
use Auth;
class ShopUserController extends Controller
{
// ....
public function liked_shopes(){
$user_id = Auth::user()->id;
$user = User::find($user_id);
$shops = $user->shops()->where('is_liked', 1)->paginate(12);
return response()->json(compact('shops'));
}
}
3: app.js для моего html-файла
$('.form-signin').on('submit',function (e){
var email = $('#email-log').val()
var password = $('#pass-log').val()
e.preventDefault();
login(email, password); // <--------- Login
return false;
});
function login(email, password) {
$.ajax({
method: 'POST',
url: 'http://127.0.0.1:8000/login',
data: {'email': email, 'password': password},
success: function(response){
localStorage.setItem('token', response.success.token);
preferred_shops(); // <--------- Login
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Email and/or Password Incorrect');
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
}
function preferred_shops(page_number = 1) {
$('#preferred-shops').remove();
$('#nearby-shops').remove();
$.ajax({
method: 'GET',
url: 'http://127.0.0.1:8000/shops/likedshops',
data: {'page' : page_number},
headers: {"Authorization": localStorage.getItem('token')}, // This isn't helping
success: function(response){
var data = response.shops.data;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
}