如何在laravel中使用社交名称和护照创建REST API

时间:2017-12-10 10:41:45

标签: laravel authentication laravel-passport laravel-socialite

我想创建REST API,它将使用社交(谷歌)登录系统来验证用户进入系统。

我正在使用laravel auth和socialite进行社交认证 所以我的路线是这样的

Route::group(['middleware'=>'auth:api'], function(){
  Route::get('hello','ApiTestControler@index');
});

    我试图用这个URL访问它

http://localhost:8000/api/hello?token=16Wf313JyO66cgXk6UstxsIzrf0hlt8tsP09i04UczkWysHWoveVcHGhUPz6YTdX

我希望它能够登录并显示ApiTestController index methord

但它显示我的登录页面。 如何解决此问题并使用API​​令牌进行用户身份验证?

更新

用户迁移表

        $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',
        ],
      ]

1 个答案:

答案 0 :(得分:2)

这里的问题是Laravel不知道这是一个api电话,它认为这是一个网络电话。因此,要解决此问题,您需要在标题上添加application/json

Content-Type: application/json

Accept: application/json

只要在标题上添加json并拨打电话,laravel就会知道这是一个api通话!因此它会加载你的api控制器。