2016-11-29 98 views
0

我有两个相关的问题,我希望有人帮助我,因为我一直停留2天如何进行身份验证与令牌(在iPhone保持认证)

首先用户:手机无法验证

这里是我做了什么:

1-用户注册发布

2-令牌3-令牌保存在用户的设备

但随后在同一用户尝试做的API请求我得到

Rooute注册:

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

然后我得到一个道理,所以我想一切看起来很棒! 那么现在当同一设备发送POST请求laravel我得到这个消息

"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\[email protected]'); 

二:是我的方法来保存所做的数据权通过手机?

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

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; 


} 
+0

如果你正在做一个API,请不要遵循一些标准,如成功创建后返回201(http://racksburg.com/choosing-an-http-status-code/ ) – Kyslik

+0

我只是测试我的路线。完成后我会清理一切。感谢您的链接 – leo0019

回答

1

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

这里是你能做什么:

  1. 加入以下迁移 $table->string('api_token', 60)->unique();。这产生为每个用户随机API令牌成立于用户表称为api_token列。
  2. 发送api_token回到用户的设备并将其保存在那里
  3. 发送回每个请求。 Preferalbly设置它在全球和要求身份验证请求头
  4. 发送获取认证的用户,像这样$user= Auth::guard('api')->user();

Laravel需要幕后的所有身份验证的东西照顾。

详细了解此here

+0

我已经完成了前三个步骤。但我认为获得认证用户是我的问题。我添加了'$ user = Auth :: guard('api') - > user();'但仍然给我同样的错误。请再看看它受保护的路线,有什么我失踪? @Rahul Ravindran – leo0019

+0

你使用的是什么版本的laravel? –

+0

L5.3与丁格尔包 – leo0019