Laravel: регистрация и вход с использованием паспортного Oauth-токена (ReflectionException: контроллер не существует) - PullRequest
0 голосов
/ 26 апреля 2019

Итак, я пытаюсь использовать паспорт Laravel Api и получаю эту ошибку.

ReflectionException:

Class App\Http\Controllers\Api\AuthController does not exist

Всякий раз, когда я пытаюсь войтиэта команда: "php artisan route: list"

Мои коды маршрутов размещены в моем api.php

Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('/register','Api\AuthController@register');

Я думаю, ошибка находится в api.php но я не знаю, где это.

Вот AuthController.php коды

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\User;
use GuzzleHttp\Client;
use Illuminate\Http\Request;

class AuthController extends Controller
{
   public function register(Request $request){
    $validatedData = $request->validate([
        'email'=>'required',
        'name'=>'required',
        'password'=>'required'
    ]);

    $user = new User();
    $user->name = $request->name;
    $user->email = $request->email;
    $user->password = bcrypt($request->password);
    $user->save();

    $http = new Client;

    $response = $http->post(url('oauth/token'), [
        'form_params' => [
            'grant_type' => 'password',
            'client_id' => '2',
            'client_secret' => 'C0aJVstKoiTxx1HrCQEwBOYNKYHhMCGN9w6NUz57',
            'username' => $request->email,
            'password' => $request->password,
            'scope' => '',
        ],
    ]);

    return response(['data'=>json_decode((string) $response->getBody(), true)]);
}
public function login(){

}
}

Я следую этому уроку на YouTube: https://www.youtube.com/watch?v=fiVA2Oko23o

Это мойуже во второй части я сделал все, как объяснено в руководстве, но, кажется, что-то не так с моими кодами, я думаю.

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019

Полагаю, вы забыли поставить '\'. ты должен попробовать это.

Route::post('/register','\Api\AuthController@register');

Маршрут Laravel всегда находит класс контроллера в \Controller пространстве имен.

0 голосов
/ 26 апреля 2019

Вы должны вызвать действие по

http://{your_domain}/api/register
0 голосов
/ 26 апреля 2019

Я так новичок, я обнаружил, что проблема находится в api.php

Auth должно быть до Api

Route::post('/register','Auth\Api\AuthController@register');
...