0

我有两个相关的问题,我希望有人帮助我,因为我已经被困了 2 天

第一:手机认证失败

这是我所做的:

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 发送一个发布请求时,我收到了这条消息

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

这是发布请求的路径

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

第二:我用手机保存数据的方法对吗?

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

 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;


}
4

1 回答 1

1

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

这是你可以做的:

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

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

在此处了解更多信息

于 2016-11-29T13:58:44.670 回答