Как мне перенаправить / зарегистрироваться на laravel в моем приложении SPA? - PullRequest
0 голосов
/ 12 февраля 2019

Пожалуйста, помогите мне в этом, я создаю SPA с Vue, страница входа в систему является корневой страницей

Route::get('/', function () {
    return view('auth.login');
});
Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

// this is my HomeController index method
public function index()
{
    return view('layouts.app');
}

Эта страница входа загружается из обычного блейд-файла, login.blade.php,затем, после успешного входа в систему, он переходит к /home, который обрабатывается моим HomeController.Контроллер только визуализирует вид компоновки, где Vue затем вступит во владение.Кроме того, я использую библиотеку laravel-role из jeremykenedy \ LaravelRoles, поэтому я только хочу, чтобы Admin мог регистрировать пользователей с помощью той же функции регистрации, что и из auth, я так и сделал, и все работает просто отлично, ноТеперь проблема заключается в том, что, когда я нахожусь в SPA, если я изменяю URL-адрес корня, например http://127.0.0.1:8000, он снова возвращается на страницу входа в систему. Также http://127.0.0.1:8000/register также переходит в файл блейд-регистра вместо реестра..vue я создал и направил.Как я могу справиться с этим?

Это мой Vue Router

const routes = [
  {
    name: 'Default',
    path: '/',
    component: HomeComponent
  },
  {
    name: 'Home',
    path: '/home',
    component: HomeComponent
  },
  {
    name: 'Register',
    path: '/register',
    component: RegisterComponent
  } 

];

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Когда вы перезагрузите или попытаетесь перейти на другую страницу вручную, она пойдет по Laravel Route, потому что вы находитесь в Laravel PORT http://127.0.0.1:8000.Только vue маршруты работают, когда вы нажимаете Link не вручную.Для этого вопроса я всегда стараюсь разделить Laravel и Vue.

0 голосов
/ 12 февраля 2019

В вашем маршруте / web.php должна быть директива Auth::routes().Избавьтесь от него и замените его на

$this->get('admin/login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('admin/login', 'Auth\LoginController@login');
$this->post('admin/logout', 'Auth\LoginController@logout')->name('logout');

$this->get('admin/register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('admin/register', 'Auth\RegisterController@register');

$this->get('admin/password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
 $this->post('admin/password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('admin/password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('admin/password/reset', 'Auth\ResetPasswordController@reset');

Теперь вы можете избавиться от ненужных маршрутов и заменить их на те, которые могут показаться подходящими.Я надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...