如何在 laravel 中使用社交名流和护照创建 REST API
How to create REST API with socialite and passport in laravel
我想创建 REST API,它将使用社交 (google) 登录系统验证用户进入系统的身份。
我正在使用 laravel auth 和 socialite 进行社交身份验证
所以我的路线是这样的
Route::group(['middleware'=>'auth:api'], function(){
Route::get('hello','ApiTestControler@index');
});
我正在尝试使用 url
访问它
我原以为它会让我登录并显示 ApiTestController index methord
但它向我显示登录页面。
我该如何解决这个问题并使用 API 令牌让用户进行身份验证?
更新
用户迁移table
$table->increments('id');
$table->string('name')->unique();
$table->string('first_name')->nullable();
$table->string('last_name')->nullable();
$table->string('email')->unique()->nullable();
$table->string('password');
$table->rememberToken();
$table->boolean('activated')->default(false);
$table->string('token');
$table->ipAddress('signup_ip_address')->nullable();
$table->ipAddress('signup_confirmation_ip_address')->nullable();
$table->ipAddress('signup_sm_ip_address')->nullable();
$table->ipAddress('admin_ip_address')->nullable();
$table->ipAddress('updated_ip_address')->nullable();
$table->ipAddress('deleted_ip_address')->nullable();
$table->timestamps();
$table->softDeletes();
以及config\auth.php
中的auth配置
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
]
这里的问题是 Laravel 不知道这是一个 api 调用,它认为这是一个网络调用。因此,要解决此问题,您需要在 headers 上添加 application/json
:
Content-Type: application/json
Accept: application/json
只要在 headers 上添加 json
并拨打电话,laravel 就会知道这是一个 api 电话!因此它将加载您的 api 控制器。
我想创建 REST API,它将使用社交 (google) 登录系统验证用户进入系统的身份。
我正在使用 laravel auth 和 socialite 进行社交身份验证 所以我的路线是这样的
Route::group(['middleware'=>'auth:api'], function(){
Route::get('hello','ApiTestControler@index');
});
我正在尝试使用 url
访问它我原以为它会让我登录并显示 ApiTestController index methord
但它向我显示登录页面。 我该如何解决这个问题并使用 API 令牌让用户进行身份验证?
更新
用户迁移table
$table->increments('id');
$table->string('name')->unique();
$table->string('first_name')->nullable();
$table->string('last_name')->nullable();
$table->string('email')->unique()->nullable();
$table->string('password');
$table->rememberToken();
$table->boolean('activated')->default(false);
$table->string('token');
$table->ipAddress('signup_ip_address')->nullable();
$table->ipAddress('signup_confirmation_ip_address')->nullable();
$table->ipAddress('signup_sm_ip_address')->nullable();
$table->ipAddress('admin_ip_address')->nullable();
$table->ipAddress('updated_ip_address')->nullable();
$table->ipAddress('deleted_ip_address')->nullable();
$table->timestamps();
$table->softDeletes();
以及config\auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
]
这里的问题是 Laravel 不知道这是一个 api 调用,它认为这是一个网络调用。因此,要解决此问题,您需要在 headers 上添加 application/json
:
Content-Type: application/json
Accept: application/json
只要在 headers 上添加 json
并拨打电话,laravel 就会知道这是一个 api 电话!因此它将加载您的 api 控制器。