Mendapatkan Client ID Dari User Laravel Passport

Tags: Web Development

Ketika menyimpan data transaksional pada database terkadang kita perlu menyimpan juga data client yang digunakan user untuk menyimpan data. Laravel Passport1 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;