Mendapatkan CLient ID Dari User Laravel Passport

Ketika menyimpan data transaksional pada database terkadang kita perlu menyimpan juga data client yang digunakan user saat menyimpan data. Laravel Passport sayangnya tidak menyertakan atribute client id pada Authenticated user. Untuk mendapatkan client id dari user dapat menggunakan cara berikut:

<?php

use Illuminate\Support\Facades\DB;
use Lcobucci\JWT\Parser as JwtParser;
use League\OAuth2\Server\ResourceServer;
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;

...


    $token_id  = with(new JwtParser)
        ->parse($request->bearerToken())
        ->getHeader('jti');
    $row = DB::table('oauth_access_tokens')
        ->select('client_id')
        ->where('id', $token_id)
        ->get()
        ->first();

    $client_id = $row->client_id;