Laravel API的用户标识

时间:2018-06-23 11:29:01

标签: php laravel

我想构建一个访问Laravel API的Vue Web应用程序。不需要身份验证(例如电子邮件或密码),只是我必须知道谁在发出请求。我的想法是在第一个请求上给每个客户一个随机令牌,然后将其与其他每个请求一起发送。

在Laravel中实现此目标的最佳方法是什么?我发现了这一点,但它看起来很复杂,并不是我真正需要的东西:https://laravel.com/docs/5.6/passport#consuming-your-api-with-javascript

2 个答案:

答案 0 :(得分:0)

在用户表中添加api_token字段

$table->string('api_token', 60)->unique();

生成api_token给新用户。 $user->token=str_random(60)已注册

现在您可以使用此中间件

Route::group(['prefix' => 'api', 'middleware' => 'auth:api'], function () {
     //all the api calls
});

在您的请求标头中,添加这样登录的用户令牌

'headers' => [
    'Accept' => 'application/json',
    'Authorization' => 'Bearer '.$token,
],

要获取令牌值,必须先使用电子邮件和密码登录 控制器:

$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials)) {
       return response()->json(Auth::User());

}

在您的请求标头中,像这样添加令牌
现在,您可以通过request()->user()

访问您的用户

答案 1 :(得分:0)

JWT可能是最好的方法。 an excellent Laravel implementation可以根据您喜欢的任何事物创建令牌(有关详细信息,请参考wiki),并且它比Passport更为简单。如果您只需要验证用户是否相同,则可以生成一个UUID并使用它来生成令牌。