您正试图授予另一个网站访问权限以查看学生的课程。数据是否公开?如果是,则不需要身份验证。但这意味着每个拥有 API URL 的人都可以访问数据。在您的 API 上使用身份验证完全取决于您。
现在,要创建 API,使用 Laravel 非常容易。网上有很多像这样的免费资源:https ://tutorials.kode-blog.com/laravel-5-rest-api 。只需谷歌该主题以获取更多信息。
基本上,API 的工作方式与您在控制器和路由方面所做的完全一样。在 laravel 5.4 中,有一个单独的 api 路由文件位于routes/api.php
. 那是您定义路线的地方。
Route::get('courses', 'Api\CourseController@index');
该路由将响应https://www.website.com/api/courses
并链接到index()
位于 中的函数app/Http/Controllers/Api/CourseController.php
。您必须自己创建该控制器。
查看那个路由文件,你可以看到一些开箱即用的东西
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
这意味着由于中间件,路由/api/user
将需要身份验证。auth:api
到目前为止,在您的控制器中,您返回视图。在 api 控制器中,您将返回响应
public function index()
{
$courses = Course::all();
return response()->json($courses);
}
调用该网站的应用程序将收到一个包含课程数组的 JSON 对象。更多关于这里的回复:https ://laravel.com/docs/5.4/responses
关于 api_token laravel
提供的默认 API 身份验证通过检查api_token
用户表中的属性来工作。该 api_token 必须存在于发送到 api 的请求的标头中。然后 Laravel 将使用该 api_token 来识别发出请求的用户。在默认应用程序中,要获取用户,您可以
$user = Auth::user();
在您的 API 控制器中,您可以
$user = Auth::guard('api')->user();
//Auth will look for api_token to get the user making the request