{"id":24651675,"url":"https://github.com/peterpetrus/passport-token","last_synced_at":"2025-10-07T11:31:22.253Z","repository":{"id":53927445,"uuid":"113676362","full_name":"peterpetrus/passport-token","owner":"peterpetrus","description":"Dirty Decoder for Laravel Passport (Bearer) Access Token","archived":false,"fork":false,"pushed_at":"2023-09-25T15:29:57.000Z","size":15,"stargazers_count":20,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-22T18:17:56.736Z","etag":null,"topics":["access-token","authentication","decoder","laravel","laravel-passport"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peterpetrus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-09T14:41:05.000Z","updated_at":"2024-11-06T05:06:52.000Z","dependencies_parsed_at":"2022-08-13T04:40:22.242Z","dependency_job_id":"6f3cc5a9-e7a1-4ffb-b4db-d0262595f5f1","html_url":"https://github.com/peterpetrus/passport-token","commit_stats":{"total_commits":15,"total_committers":4,"mean_commits":3.75,"dds":"0.19999999999999996","last_synced_commit":"6da356834fda20d29f0d47cbac012b61a820722a"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterpetrus%2Fpassport-token","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterpetrus%2Fpassport-token/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterpetrus%2Fpassport-token/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterpetrus%2Fpassport-token/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterpetrus","download_url":"https://codeload.github.com/peterpetrus/passport-token/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235425785,"owners_count":18988409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access-token","authentication","decoder","laravel","laravel-passport"],"created_at":"2025-01-25T19:12:40.854Z","updated_at":"2025-10-07T11:31:21.910Z","avatar_url":"https://github.com/peterpetrus.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# passport-token\nDecoder for Laravel Passport (Bearer) Access Token.\n\n## Functionality\n\nDecode Access-Token and return array with its IDs (token_id, user_id), Dates (date of expire, date of creation, start date) and validity and errors.\n\n\u003ca href=\"https://hydranode.org/btcpay/apps/2sYChS6rMmpzt7h9BhzCSZrbbXxB/pos\" target=\"_blank\" title=\"Donate with Lightning Network\"\u003e\n    \u003cimg alt=\"Donate with Lightning Network\" src=\"https://i.ibb.co/X7NvYTj/donate-with-ln-mini.png\" /\u003e\n\u003c/a\u003e\n\n## Installation\n\nInstallation via composer:\n\n``` bash\ncomposer require peterpetrus/passport-token\n```\n\n## Example\n\n### Decode token as Object\n\nObject has same properties as returned array fields below.\n\n```php\nuse PeterPetrus\\Auth\\PassportToken;\n\n$token = new PassportToken(\n    'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjI2YTUyMTMxNDAzOGQ0NGY3OTVkMzYwZGQ0ZDlkNDBlYTQyNGU4N2ZlMjUyMmVhMTk5ZjU2ZWVmODg0ZTFhNWNmNjg2Nzk3NmQ2MDRmOWY5In0.eyJhdWQiOiIyIiwianRpIjoiMjZhNTIxMzE0MDM4ZDQ0Zjc5NWQzNjBkZDRkOWQ0MGVhNDI0ZTg3ZmUyNTIyZWExOTlmNTZlZWY4ODRlMWE1Y2Y2ODY3OTc2ZDYwNGY5ZjkiLCJpYXQiOjE1MTI3NDc1OTIsIm5iZiI6MTUxMjc0NzU5MiwiZXhwIjoxNTE4MTA0MzkyLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.toksHokX_RZ7eRToL_owakMJ3gbi0nppD5yrhA9C5McVSnn3WraA4NwBcwQVlkv316BTUOaJ14unBNEg1UKGuK4EhoiTBMdT1cSkgH1HKZg2SXNBrCPi9YY4g4-4qpfxQqLeBM5JsVbouD6VeeBmDJUGVcoXDXimKEft4lgkIIqPCmWOV9HscKkRQ23lyVhXaQo4TMoCUZfM2ppyqdl2wTsrXp7woQMbqwVo9bnc4d6opj55XvMgal5MmY8YXDHpJO29UWkn2mTIL3kB6KP_WDHg5LJU0r1ua1lTn8Om97Z4eMFFUlipq7yODSgtML92kiZef7JAX3DecxJbzB9tcDk22NtSoBzlHy86ZJHU9rKhcIuKbpys6X2dAHAlkS7GUCWHqZcwN38LfjoyUEiP7QHkLNogSZQZE_I7FPKLYpxyOiR83K4IZGlOEeiEJZGCVqUWviyyIfWRA3gusk6p5cB4begxOne_l0vnNRH2WiB-WOKBytL1fKeXwaJj8AIFGj03Wvb0OYqp01ef05kiX9Y-PbHYYi_x5L8fcywXqo3ubKKiChqTCXirLH9ENcTwQT0C32Z2EgLlNnyF5iH9XQuW5UN36ke63ad0iIjlEhinoOOF8OK8IDKiHGIQ0qJwZxFG3EVDX3UFQpZUaAgYlNTTXhyT-fvf1dNR8msy-h0'\n);\n\nif ($token-\u003evalid) {\n    // Check if token exists in DB (table 'oauth_access_tokens'), require \\Illuminate\\Support\\Facades\\DB class\n    if ($token-\u003eexistsValid()) {\n        Auth::login(User::find($token-\u003euser_id));\n        return redirect(...);\n    }\n}\n```\n\n### Decode token with static methods\n\n```php\nuse PeterPetrus\\Auth\\PassportToken;\n\n$decoded_token = PassportToken::dirtyDecode(\n    'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjI2YTUyMTMxNDAzOGQ0NGY3OTVkMzYwZGQ0ZDlkNDBlYTQyNGU4N2ZlMjUyMmVhMTk5ZjU2ZWVmODg0ZTFhNWNmNjg2Nzk3NmQ2MDRmOWY5In0.eyJhdWQiOiIyIiwianRpIjoiMjZhNTIxMzE0MDM4ZDQ0Zjc5NWQzNjBkZDRkOWQ0MGVhNDI0ZTg3ZmUyNTIyZWExOTlmNTZlZWY4ODRlMWE1Y2Y2ODY3OTc2ZDYwNGY5ZjkiLCJpYXQiOjE1MTI3NDc1OTIsIm5iZiI6MTUxMjc0NzU5MiwiZXhwIjoxNTE4MTA0MzkyLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.toksHokX_RZ7eRToL_owakMJ3gbi0nppD5yrhA9C5McVSnn3WraA4NwBcwQVlkv316BTUOaJ14unBNEg1UKGuK4EhoiTBMdT1cSkgH1HKZg2SXNBrCPi9YY4g4-4qpfxQqLeBM5JsVbouD6VeeBmDJUGVcoXDXimKEft4lgkIIqPCmWOV9HscKkRQ23lyVhXaQo4TMoCUZfM2ppyqdl2wTsrXp7woQMbqwVo9bnc4d6opj55XvMgal5MmY8YXDHpJO29UWkn2mTIL3kB6KP_WDHg5LJU0r1ua1lTn8Om97Z4eMFFUlipq7yODSgtML92kiZef7JAX3DecxJbzB9tcDk22NtSoBzlHy86ZJHU9rKhcIuKbpys6X2dAHAlkS7GUCWHqZcwN38LfjoyUEiP7QHkLNogSZQZE_I7FPKLYpxyOiR83K4IZGlOEeiEJZGCVqUWviyyIfWRA3gusk6p5cB4begxOne_l0vnNRH2WiB-WOKBytL1fKeXwaJj8AIFGj03Wvb0OYqp01ef05kiX9Y-PbHYYi_x5L8fcywXqo3ubKKiChqTCXirLH9ENcTwQT0C32Z2EgLlNnyF5iH9XQuW5UN36ke63ad0iIjlEhinoOOF8OK8IDKiHGIQ0qJwZxFG3EVDX3UFQpZUaAgYlNTTXhyT-fvf1dNR8msy-h0'\n);\n\nif ($decoded_token['valid']) {\n    // Check if token exists in DB (table 'oauth_access_tokens'), require \\Illuminate\\Support\\Facades\\DB class\n    $token_exists = PassportToken::existsValidToken(\n        $decoded_token['token_id'], \n        $decoded_token['user_id']\n    );\n    \n    if ($token_exists) {\n        Auth::login(User::find($decoded_token['user_id']));\n        return redirect(...);\n    }\n}\n```\n\n### Returned array $decoded_token\n\n```php\n[\n    \"token_id\" =\u003e \"26a521314038d44f795d360dd4d9d40ea424e87fe2522ea199f56eef884e1a5cf6867976d604f9f9\",\n    \"user_id\" =\u003e \"1\",\n    \"expecting\" =\u003e false,\n    \"start_at_unix\" =\u003e 1512747592,\n    \"start_at\" =\u003e \"2017-12-08T15:39:52+0000\",\n    \"incorrect\" =\u003e false,\n    \"created_at_unix\" =\u003e 1512747592,\n    \"created_at\" =\u003e \"2017-12-08T15:39:52+0000\",\n    \"expired\" =\u003e false,\n    \"expires_at_unix\" =\u003e 1518104392,\n    \"expires_at\" =\u003e \"2018-02-08T15:39:52+0000\",\n    \"error\" =\u003e false,\n    \"errors\" =\u003e [],\n    \"valid\" =\u003e true\n]\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterpetrus%2Fpassport-token","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterpetrus%2Fpassport-token","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterpetrus%2Fpassport-token/lists"}