Контроллер: нет идентификатора пользователя с топором ios api-call? - PullRequest
0 голосов
/ 26 апреля 2020

Я создал метод ' save ' в vue с топором ios для использования с laravel (для авторизованных пользователей с аутентификацией):

save: function(status) {
     axios.post('/api/save-question', this.Frage)
        .then(res => {
            this.$router.push('/');
            })
}

api. php:

Route::post('/save-question','FragenController@store');

, что приводит к «сохранению» метода контроллера в FragenController. php:

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

public function store(Request $request)
    {
        $UserID = Auth::user()->id;
        if($UserID=='1'){
          //do the saving part
        }
    }

Но это не работает, кажется, так как эта переменная пуста. Теперь мне интересно, если вызов ax ios сделан от нейтрального пользователя без идентификатора (не зарегистрированного в данный момент пользователя laravel). Это тот случай, или я просто делаю это неправильно? Сохранение работает нормально, если я вручную установил $ UserID = '1'.

1 Ответ

1 голос
/ 27 апреля 2020

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

Решение состоит в том, чтобы использовать токены API для проверки, если ваш пользователь аутентифицирован. Laravel уже подумал об этом и облегчает нам задачу.

Для Laravel 7+ он предоставляется в отдельном пакете под названием Laravel Sanctum:

В предыдущих версиях он был включен в Laravel в соответствии с Аутентификацией API:

...