Laravel/Passport 我真的需要为简单的 CRUD API 注册 Passport::routes() 吗?

Laravel/Passport Do I really need to register Passport::routes() for a simple CRUD API?

我在AuthServiceProvider的启动方法中注册了Passport::routes();,但我似乎没有使用它注册的任何路由。

我需要它们吗?它们的用途是什么?我不能只使用映射到自定义控制器的自定义路由来进行登录、注册和注销方法吗?

(已编辑)不,如果您不使用它们,则不需要在 AuthServiceProvider 中注册 Passport::routes()。以下自定义控制器逻辑(改编自 https://medium.com/techcompose/create-rest-api-in-laravel-with-authentication-using-passport-133a1678a876)仍将使用 Passport 的内置 OAuth2 服务器注册新用户和 return 有效令牌:

public function register(Request $request)
{
    $validator = Validator::make($request->all(), [ 
        'name' => 'required', 
        'email' => 'required|email', 
        'password' => 'required', 
        'retype_password' => 'required|same:password', 
    ]);

    if ($validator->fails()) { 
        return response()->json($validator->errors(), Response::HTTP_FORBIDDEN);            
    }

    $user = User::firstOrCreate(
        ['email' => $request->email],
        ['name' => $request->name, 'password' => bcrypt($request->password)]
    ); 

    $response = [
        'token' => $user->createToken('MyApp')->accessToken
    ];

    return response()->json($response, Response::HTTP_CREATED);
}

在上面的示例中,createToken($key) 来自 Passport 中包含的 HasApiTokens 特征,它将 return 令牌,无论您是否注册路由。 (感谢 patricus 纠正我最初的回答。)