Как реализовать Auth :: check () в laravel и vuejs - PullRequest
0 голосов
/ 29 января 2020

как проверить логин пользователя? если пользователь не вошел в систему, он не может оставлять комментарии и перенаправлять на страницу входа для входа первым.

Я пытался, но не работал

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Защитите свой маршрут с помощью промежуточного программного обеспечения для аутентификации:

Route::get('comments', function () {
    // Only authenticated users may enter...
})->middleware('auth');

или в виде группы:

    Route::group(['middleware' => ['auth']], function () {
        Route::post('comments', 'CommentController@store');
    });

Тогда laravel автоматически перенаправит неаутентифицированных пользователей на ваш «логин» с именем route , (или укажите собственный маршрут в методе redirectTo () приложения / Http / Middleware / Authenticate. php)

Из вашего ajax вызова в vue вы можете прослушайте код ответа 403, а затем перенаправьте пользователя на адрес для входа. Но если вы разместите маршрут своего основного приложения в промежуточном программном обеспечении auth, вам никогда не придется беспокоиться об этой части, поскольку laravel будет перенаправлять пользователей автоматически.

0 голосов
/ 29 января 2020

Это действительно зависит от того, как вы создали свое приложение, если это спа, вы должны использовать что-то вроде laravel шлюз или паспорт вместо логина входа по умолчанию c.

Если это многостраничный приложения, вы должны включить простое промежуточное программное обеспечение для аутентификации.

С этим вы можете просто указать в своем блейд-файле, какие элементы должны быть включены или нет, как это:

@auth
  <h1>Logged in</h1>
@endauth

У вас может быть простое маршрут, который проверяет, вошли вы в систему или нет, в зависимости от результата вы можете сделать несколько магий c.

Ваш маршрут:

use Auth;

Route::get('is-auth', function () {
    $auth = Auth::user();
    return $auth;
});

Теперь вы сохраняете пользователя в глобальном объект окна.

В общем вы можете сделать что-то подобное, но я не рекомендую идеи ниже.

Затем вы можете отправить запрос на сервер, который я не рекомендую, и получить результат, если вы вошли в систему или нет.

axios.get('is-auth')
   .then(response => {
     if(response.data) {
        console.log("not logged in");
     }
     console.log("logged in");
   });
   .catch(error => console.log("error");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...