From 5abfbdd1d2223f8af447e030a3d9d4423295bb9b Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 9 Nov 2020 22:52:55 -0800 Subject: [PATCH 1/2] Allow API token expiration in years to be configured via env --- .env.example | 1 + app/Providers/AuthServiceProvider.php | 6 +++--- config/passport.php | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 4608c185b2..6e41e009df 100644 --- a/.env.example +++ b/.env.example @@ -76,6 +76,7 @@ ENCRYPT=false COOKIE_NAME=snipeit_session COOKIE_DOMAIN=null SECURE_COOKIES=false +API_TOKEN_EXPIRATION_YEARS=40 # -------------------------------------------- # OPTIONAL: SECURITY HEADER SETTINGS diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index efdbec0c08..067af8ccb0 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -87,9 +87,9 @@ class AuthServiceProvider extends ServiceProvider $this->registerPolicies(); Passport::routes(); - Passport::tokensExpireIn(Carbon::now()->addYears(20)); - Passport::refreshTokensExpireIn(Carbon::now()->addYears(20)); - Passport::personalAccessTokensExpireIn(Carbon::now()->addYears(20)); + Passport::tokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years'))); + Passport::refreshTokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years'))); + Passport::personalAccessTokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years'))); Passport::withCookieSerialization(); diff --git a/config/passport.php b/config/passport.php index 1d9244514a..b8342a6b59 100644 --- a/config/passport.php +++ b/config/passport.php @@ -12,4 +12,5 @@ return [ */ 'private_key' => env('PASSPORT_PRIVATE_KEY'), 'public_key' => env('PASSPORT_PUBLIC_KEY'), + 'expiration_years' => env('API_TOKEN_EXPIRATION_YEARS', 20), ]; \ No newline at end of file From f4080a7aa9026e1dd941b34d2e82ece6cb50f213 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 9 Nov 2020 22:53:07 -0800 Subject: [PATCH 2/2] Fixed created_at and expired_at order in API token screen --- public/js/build/app.js | Bin 446907 -> 446909 bytes public/js/dist/all.js | Bin 816020 -> 816022 bytes public/mix-manifest.json | 4 ++-- .../passport/PersonalAccessTokens.vue | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/js/build/app.js b/public/js/build/app.js index dfb6601a0d162cf9572162e808f6ef8edc6490f8..b29082883df32c9f27a0ffa7b7b7d401c378e38a 100644 GIT binary patch delta 256 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 diff --git a/public/mix-manifest.json b/public/mix-manifest.json index d4c58a6d79..80926ec617 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,5 +1,5 @@ { - "/js/build/app.js": "/js/build/app.js?id=2f6c6e40a6009d5d0066", + "/js/build/app.js": "/js/build/app.js?id=df0e9d334d5c0b0eb048", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=59413334823616b81341", "/css/build/app.css": "/css/build/app.css?id=032fd8c3fce99c7fd862", "/css/build/overrides.css": "/css/build/overrides.css?id=0b4aefd7ef0c117ef23a", @@ -34,5 +34,5 @@ "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=1e77fde04b3f42432581", "/js/build/vendor.js": "/js/build/vendor.js?id=aff75d5aad5e7b429723", "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=58d95c93430f2ae33392", - "/js/dist/all.js": "/js/dist/all.js?id=f9ad3790a16ec5348bff" + "/js/dist/all.js": "/js/dist/all.js?id=5dc677546cc6d86e605d" } diff --git a/resources/assets/js/components/passport/PersonalAccessTokens.vue b/resources/assets/js/components/passport/PersonalAccessTokens.vue index d825df0b31..aff75c36da 100644 --- a/resources/assets/js/components/passport/PersonalAccessTokens.vue +++ b/resources/assets/js/components/passport/PersonalAccessTokens.vue @@ -46,11 +46,11 @@ - {{ token.expires_at }} + {{ token.created_at }} - {{ token.created_at }} + {{ token.expires_at }}