【问题标题】:How to get the user id from laravel passport token?如何从 laravel 护照令牌中获取用户 ID?
【发布时间】:2019-12-16 07:29:04
【问题描述】:

我正在使用 smartins/passport-multiauth 护照,在 PostMan 中我做了一个发布请求,通过请求发送此数据; 这个想法是当用户提交订单时,该用户的令牌将通过请求传递..如何获取该令牌的 user_id 以便将其存储在 Orders 表中?

{

        "place_id": 2,
        "token": "b715d124c04125acae2dda144021724b3266a361785f29883105c138d23ecdb0da1fd48de719039a",
        "items": [
            {
                "id": 4,
                "quantity": 5
            },
            {
                "id": 5,
                "quantity": 3
            }
        ]

}
public function new_order(Request $request)
    {
        $token= auth('api')->user();
        $order = Order::create([
            'place_id'=>$request->place_id,
            'code_id'=>$request->code_id,
            'user_id'=>$token
        ]);

        $items = $request->input('items', []);
        foreach ($items as $item)
        {
            ItemOrder::create([
                'order_id'=>$order->id,
               'item_id'=>$item['id'] ,
               'quantity'=>$item['quantity'] ,
            ]);
        }

        return response()->json([
            'status' => (bool)$order,
            'order' => $order,
            'message' => $order ? 'Your order has been sent !' : 'There is some error!'
        ]);
        //ToDo:notificaion to restaurant
    }

【问题讨论】:

  • Auth::guard('api')->user()->idauth('api')->user()->id
  • @DilipHirapara 我收到此错误:“尝试获取非对象的属性 'id'”
  • 传入 header Authorization=Bearer {your_token} like this Authorization =Bearer b715d124c04125acae2dda144021724b3266a361785f29883105c138d23ecdb0da1fd48de719039a

标签: php laravel laravel-passport


【解决方案1】:

你快到了......你应该在$token中传递用户的ID,如下所示:

$token = auth('api')->user()->id 

'user_id' = auth('api')->user()->id;

【讨论】:

    【解决方案2】:

    试试这个:-

    return response()->json([
       'status' => (bool)$order,
       'user_id'=> \Auth::user()->id,
       'order' => $order,
       'message' => $order ? 'Your order has been sent !' : 'There is some error!'
    ]);  
    

    【讨论】:

    • 我收到此错误:“尝试获取非对象的属性 'id'”
    • 你在标头中传递令牌?
    • 是的。我在标头中传递了令牌
    • 此语法通过授权=Bearer b715d124c04125acae2dda144021724b3266a361785f29883105c138d23ecdb0da1fd48de719039a
    • 喜欢这个 "授权=Bearer":"9a7659feeb89026d33fefb255c7cdf43a28748b048039becb011b40422a5fa8ccbfb7c1198f66591", ?
    【解决方案3】:

    只需像这样获取经过身份验证的用户 ID:

    'user_id' = auth('api')->user()->id;
    

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 2019-11-29
      • 2020-12-18
      • 2016-06-21
      • 2020-05-05
      • 2021-07-05
      • 1970-01-01
      • 2019-05-15
      相关资源
      最近更新 更多