如何使用令牌对用户进行身份验证(在 iPhone 中保持身份验证)

How to authenticate user with token (stay authenticated in iPhone)

我有两个相关的问题,我已经卡了2天了,希望有人能帮助我

第一:手机phone认证失败

这是我所做的:

1- 用户注册

2- 令牌释放

3- 用户设备中保存的令牌

但是当同一个用户尝试执行 API 请求时,我得到

报名途径:

$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {
$api->post('auth/signup', 'App\Api\V1\Controllers\AuthController@signup');

然后我得到一个令牌,所以我想一切看起来都很棒! 然后现在当同一台设备向 laravel 发送 post 请求时,我收到此消息

"message": "Failed to authenticate because of bad credentials or an invalid authorization header."

这是 post 请求

的路径
 $api->group(['middleware'=>'api.auth'],
    function ($api)   {
$api->post('auth/ios', 'App\Api\V1\Controllers\AuthController@create');

其次:我这个方法保存手机发的数据对吗phone?

由于无法测试此方法,我想知道这是否至少是接收和保存数据的正确方法之一。保存它的原因是因为我会在控制面板中显示它。

 public function create(Request $request)
{

    $user = new User();
    $id = Auth::id();
    $user->phone = $request->input('phone');
    $user->city = $request->input('city');
    $user->street = $request->input('street');
    $user->save();

    return 'Employee record successfully created with id ' . $user->id;


}

我了解到您是基于 api 令牌对用户进行身份验证。

您可以执行以下操作:

  1. 通过添加以下迁移在用户 table 中设置名为 api_token 的列 $table->string('api_token', 60)->unique();。这会为每个用户生成一个随机的 api 令牌。
  2. api_token 发送回用户的设备并将其保存在那里
  3. 随每个请求发回。最好全局设置,在请求Authentication请求头中发送
  4. 像这样获取认证用户$user= Auth::guard('api')->user();

Laravel 负责幕后的所有身份验证工作。

了解更多相关信息here