Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions examples/01-access-token/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,10 @@ This directory provides the examples of [NGINX configuration](./conf/conf.d), [D

- Create and run a container named my-nginx based on this image:
```bash
$ docker run --name my-nginx \
-p 80:80 -p 443:443 -p 8010:8010 \
$ NGINX_CONF_PATH=/Users/{your user name}/{your github path}/nginx-openid-connect/examples/01-access-token/conf/conf.d
$ docker run --name my-nginx \
-p 80:80 -p 443:443 -p 8010:8010 \
-v $NGINX_CONF_PATH:/etc/nginx/conf.d \
-d nginxoidc
```

Expand Down
9 changes: 1 addition & 8 deletions examples/01-access-token/conf/conf.d/frontend.conf
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,6 @@ server {

add_header X-Sub $jwt_claim_sub;
add_header X-Email $jwt_claim_email;
add_header X-ID-Token $session_jwt;
add_header X-Access-Token $access_token;
access_log /var/log/nginx/access.log main_jwt;
}

Expand All @@ -77,19 +75,14 @@ server {
}

location /v1/api/two {
# This site is protected with OpenID Connect
auth_jwt "" token=$access_token;
error_page 401 = @do_oidc_flow;
auth_jwt_key_request /_jwks_uri; # Enable when using URL
auth_jwt_key_request /_jwks_uri;

status_zone localhost_api_two;
proxy_pass http://localhost:9090/v1/api/two;

add_header X-Sub $jwt_claim_sub;
add_header X-Email $jwt_claim_email;
add_header X-ID-Token $session_jwt;
add_header X-Access-Token $access_token;

access_log /var/log/nginx/access.log main_jwt;
}
}
Expand Down
18 changes: 9 additions & 9 deletions examples/01-access-token/conf/conf.d/oidc.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ function codeExchange(r) {
// - The clients MUST validate the ID Token in the Token Response from the IdP.
//
function validateIdToken(r) {
missingClaims = []
var missingClaims = []
if (r.variables.jwt_audience.length == 0) missingClaims.push('aud');
if (!isValidRequiredClaims(r, ERR_ID_TOKEN, missingClaims)) {
r.return(403);
Expand Down Expand Up @@ -111,7 +111,7 @@ function validateIdToken(r) {
// although we can add it. Hence, the claim isn't part of this validation.
//
function validateAccessToken(r) {
missingClaims = []
var missingClaims = []
if (!isValidRequiredClaims(r, ERR_AC_TOKEN, missingClaims)) {
r.return(403);
return;
Expand Down Expand Up @@ -194,7 +194,7 @@ function clearRefreshTokenAndReturnErr(r) {
r.return(302, r.variables.request_uri);
}

// Handle successful response regarding the referesh token.
// Handle successful response regarding the referesh token:
//
// - https://openid.net/specs/openid-connect-core-1_0.html#RefreshTokenResponse
// - Upon successful validation of Refresh Token, the response body is the Token
Expand Down Expand Up @@ -232,7 +232,7 @@ function handleSuccessfulRefreshResponse(r, res) {
}

// Pass the refresh token to the /_refresh location so that it can be proxied to
// the IdP in exchange for a new id_token and access_token.
// the IdP in exchange for a new id_token and access_token:
//
// 1. Request refresh token:
// - https://openid.net/specs/openid-connect-core-1_0.html#RefreshingAccessToken
Expand Down Expand Up @@ -327,10 +327,10 @@ function handleSuccessfulTokenResponse(r, res) {
}
}

// Check if token is valid using `auth_jwt` directives and Node.JS functions.
// Check if token is valid using `auth_jwt` directives and Node.JS functions:
//
// - ID token validation: uri('_id_token_validation' )
// - Access token validation: uri('_access_token_validation')
// - ID token validation: uri('/_id_token_validation' )
// - Access token validation: uri('/_access_token_validation')
//
function isValidToken(r, uri, token) {
var isValid = true
Expand Down Expand Up @@ -481,7 +481,7 @@ function isValidNonceClaim(r, msgPrefix) {
return true;
}

// Validate if received token from the IdP contains mandatory claims.
// Validate if received token from the IdP contains mandatory claims:
//
// - For ID token: 'iat', 'iss', 'sub', 'aud'
// - For Access token: 'iat', 'iss', 'sub'
Expand All @@ -499,7 +499,7 @@ function isValidRequiredClaims(r, msgPrefix, missingClaims) {
r.error(msgPrefix + 'missing claim(s) ' + missingClaims.join(' '));
return false;
}
return True
return true
}

// Check if (fresh or refersh) token set (ID token, access token) is valid.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"9f19d29eed6bcea0301f72b74686ddfd":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJiYmQwNmFmOS05NTE2LTQ4YzQtYWEyMy01ODk4ZGY3ZWQ5OTAiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9CT3N1RllSUVciLCJ2ZXJzaW9uIjoyLCJjbGllbnRfaWQiOiI0cHRzb2RiZzE4NWg5NzI2M3BpY2lhbWFmZCIsIm9yaWdpbl9qdGkiOiJhMGE3NTJmOS1iYzAwLTRiNmQtYTdhZS0zZjQyODY0NjVmZjUiLCJldmVudF9pZCI6ImNlZDgzZDJkLTg1NGMtNGE5ZC04ZmIzLTFiNGFlYWY0N2ViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MzEwNDcxMzgsImV4cCI6MTYzMTA1MDczOCwiaWF0IjoxNjMxMDQ3MTM4LCJqdGkiOiIyN2UzN2QxNC0yYTRiLTRmMzUtYmFhOS0zYzY5YzA4ZjE4ZmEiLCJ1c2VybmFtZSI6InVzZXItMDEifQ.SIOzLLA0J9ENKYX3IIRbj1567zWBroV6gmRsUIpsYPWT5wsEOLm4u8j9-4mpMLmaPc39Y4UPap9GgiQ4Ovv51TxY9Jf8DUJzkcV0PpIyqNjvPuRiO2CSfupBT2MgFDJR8-qzxB5RwkZau25_PISg7dAjb4UPm30ImkzBf3rw1YN3-eSMmgufSwyoRWHA9JMwdGmhMqzRdyT8y5Ov29ZHUBhHY2tH0EqxuitxZ1BBHAXoVNDLHvvw07p3RXEjMsxg5JclcQ1NlwlA2iHDv1W1vt19iBtB9t2xwHrrhfU04v7r6eQMPGrajCNOjK4_10HADdax5hLpPxCjD-A5zdFsow","expire":1631050738362},"bc5a4c6c47046586a2cfa5e816106732":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJiYmQwNmFmOS05NTE2LTQ4YzQtYWEyMy01ODk4ZGY3ZWQ5OTAiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9CT3N1RllSUVciLCJ2ZXJzaW9uIjoyLCJjbGllbnRfaWQiOiI0cHRzb2RiZzE4NWg5NzI2M3BpY2lhbWFmZCIsIm9yaWdpbl9qdGkiOiJmNGM4YTNhMS1iNzM3LTQxNWYtYTA3MC0wZmFjZjJhMjE2MTQiLCJldmVudF9pZCI6IjhiOWNkMjBiLTg4ZTUtNDY4My1iMmY0LTllYzMxNDhhOWFmZiIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MzEwNDkyNjksImV4cCI6MTYzMTA1Mjg2OSwiaWF0IjoxNjMxMDQ5MjY5LCJqdGkiOiI3Mjc3M2FlMy1hNTE2LTQ1NTgtYWQzNi01ZDgwY2FmNWZmMzUiLCJ1c2VybmFtZSI6InVzZXItMDEifQ.d_lz82R2Ecdin-z9vQRqnpMrDvqbiHDMnOuO1hKRUiJgiqn9GCKqlx1cna3F_Pge-nFiieO2HE4OyFtJhI9OIEO5mgRQHJflPEbECz9J4V4Xq91TzJEAkQXhglPoarT2UyfQ-csFe9NJoMu3a6DTpRkaZOSvWSnO7khB2c-yZRsK_l3hlo00uigvcpc0MnF_j8yW_i7lGD4sUrDjIjM3K6qrMspvOW1HvTwNrxy_XyogJAXHBbHxgptLJ3rVF1kPGtQf6bl-UfwWyMdDUdOSTlo8G1YfiKRr76FFAkUCwzMjuI606MyyGEYcoZVYXmIqHsI-R8fxoxznp4gmlIHjTw","expire":1631052869957},"ef9b718251e84820182ee51aa04f5f1d":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiMDk0Zjc0MjctYmZjMC00ZDhjLTkxNjgtNDE2ODU0MzcxZDkwIiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0OTQzOCwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUzMDM4LCJpYXQiOjE2MzEwNDk0MzgsInZlcnNpb24iOjIsImp0aSI6ImJiNWMyMGQ4LTgwNmQtNDdmYy1iNzhiLWRlYmM3NGQ0MTQwMiIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.AFavuV07vZ18hse-t5Tc6saSdGZ3OIDfYb80fEiN43-xo3564KLxedbqnEMcqoPbVVRkCpxVy2RVvrFagxEOaTnUvPdGWExiLmHcOJcuak0RAndE_9m1HFPnCSqx2B9tb1P7FfC-blg0j-_j_XuEySNUIDRKb1x4rt0pty67mtxhCmQUCbn-ZECtHQftEE0mc5Mxv5uNj32GRo4mai-vCYk0muu7sdXGFXN8_TLI5ThtbGmu6g7dd3MXC_tElNboT1YmME-k4vl8Rrowvb_rwonq8ktQgYEltg0lmsLwXy4m76xrqkJsOE3qdWDPwaUWWfqHANSjEooJg1yGuWQavw","expire":1631053038779},"6d67265504d494a3373f0e0c712ac4f0":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJiYmQwNmFmOS05NTE2LTQ4YzQtYWEyMy01ODk4ZGY3ZWQ5OTAiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9CT3N1RllSUVciLCJ2ZXJzaW9uIjoyLCJjbGllbnRfaWQiOiI0cHRzb2RiZzE4NWg5NzI2M3BpY2lhbWFmZCIsIm9yaWdpbl9qdGkiOiI3YWFiNDc5NC04ZmE1LTQ3MzItYTAyMi1kNDkzZGQ2ZjFlMjYiLCJldmVudF9pZCI6Ijc0NTE4MzU0LTAzZTYtNDQ3MS05NTc0LWIzZjMxMzllZjMxOSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MzEwNDk0NzIsImV4cCI6MTYzMTA1MzA3MiwiaWF0IjoxNjMxMDQ5NDcyLCJqdGkiOiIxYzRhZWU3My1jN2RhLTRkZTItYmRiMy1kMjVlNmVkZTFhNmIiLCJ1c2VybmFtZSI6InVzZXItMDEifQ.DhAQQ2iXpyYE2z5BZXLXA43fB1BVZsu9WFWYFFB-CmLtTRPu62JDL8zHSqsWp3N4T6hSv6yYaIkLWjhLIOhXjsa5JhCNuippbdpHIMHXfWiPxPN2NEoTtCayMimgW3AB46ui69FyGG0q5Cx9sGPnM5N761Lyy_zBjFHQSVsghuiDekXP1odKndoTh2rhNd6IXndZJSXINFH8bhgrjEpLyXr_ct30Fp3GlM40wpuDBuDY4LIWbSAPMPwE9AnoNT3scKBj8_ksvyKxFsCekuqWOW-vmJZ-kTiHzKJFLTNc9jwIrmUfNKabqF6FoXUkw_s6JwpI3-4SUxKqplmZXdq00A","expire":1631053072836},"6b2cb93a7d144f9b94d81d49397adc88":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJiYmQwNmFmOS05NTE2LTQ4YzQtYWEyMy01ODk4ZGY3ZWQ5OTAiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9CT3N1RllSUVciLCJ2ZXJzaW9uIjoyLCJjbGllbnRfaWQiOiI0cHRzb2RiZzE4NWg5NzI2M3BpY2lhbWFmZCIsIm9yaWdpbl9qdGkiOiIyYWQ2NGNjZS04Nzc2LTQyZGItYmUzYy0yOGU1ZTIxMzZkYmYiLCJldmVudF9pZCI6IjRmYzRmM2Y1LWM3YzAtNDMzNi04MzI5LTRhYTU0OTE1YzU2MyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MzEwNDk3NzksImV4cCI6MTYzMTA1MzM3OSwiaWF0IjoxNjMxMDQ5Nzc5LCJqdGkiOiIzMjljMjA3MC1jNjRjLTRjOTYtYjYyOC04OWFlOTU3NjAxZTAiLCJ1c2VybmFtZSI6InVzZXItMDEifQ.RAJ2WKru9EBPrJF5Sl3xtWkOxhJaaRLb9v1hgFRHNQ36iJlxHAoiKSNkF9cfo7CVgXRljjXCBOSrMROXGO-HOIu3jLB3fiHtQtPVfx0G6yM67LwDwHR-7RDE7_gqYvuuxt5dPQdZk0EisD7fG7QPHzJnqWlpXCFQ-me-G72VHsGmYcd1NmhoQ0dYmT6-fg413yh6xC3FFNRc9zt5rtIwQ0ILBSpsmzWqPDfX6Qow0rS7FZ5evQ_bNPai_OKWgdAl0mMhV-Iko0Fqv5r3FNsE3hP_8H6vwe4uoBlCthxoiLW57rh1aFR3zsquheD7DL079j5XyoB4s8z4tIm3uY7TsQ","expire":1631053379382},"8637bd45a30402b5a8b136c8e66f3af0":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiNGEzNmJhOTUtOGVhMC00MWI1LTljYTgtZmU5MDlhMGU5MmNiIiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0OTYxNywiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUzMjE3LCJpYXQiOjE2MzEwNDk2MTcsInZlcnNpb24iOjIsImp0aSI6ImEzY2FjNTM4LWExYTAtNGM1Yy1hNzY1LWJmNzkyODhkNmFkZCIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.Z0aWU2XoBT_Rot0haNSnvHqzrJhCATO3_qK2Zus5DmN4rxecp1QfMNZkZkj7M9ZUafdj9QmbZnFuTwHx9AF_eIAD-iEnQS19J2udXz49b1IkfV-nWW89-aBypVGUPIE1BRQfgF4-DoVtl_672ggovWkoYo_Tq5QAl_Q-G6WJ3DCYiLcjtUB8P2-ZZiOTMQXyAm8YDXWUzUPu9mJz8ssGwzVVSJjnbvLaLUsu04Ly-elr53nTmCNv0FUi1fRaV2FLpnqZJXCdver_SsbPxiUQGQBvdV1GyLFaqUDTNL0vrYtJQ8GH7SU4LRN6UTSCtT-WUiHICI8PF67wk3oc1rBiLA","expire":1631053217344},"746ce565ca4ee0b8c664d1e21a3f5c4a":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiMDExMzEzZjktNDE2MC00NTcwLTljMDktZmJhYjA0OTgyZjRmIiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0OTg3OSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUzNDc5LCJpYXQiOjE2MzEwNDk4NzksInZlcnNpb24iOjIsImp0aSI6Ijg4Y2FmYjQ0LTExZTYtNDI3Ny04OGM2LTNhMGI5NWRlYzgyNCIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.nD2lCyLCatvR7XwKob_hDJ3Mu729eslId1hEo2CxUe29YlW40UeCkqf9y5BVcRu9H1S6XqQvzKSfDY-I2m1LSsyAVXKowhhNczxLAEYmwe-89z3-5epMTSczUo3tSOzy0UUc7zUhQRl1WmH2rcILB_WSK8FV-F3-i-Lach7qHWxQKpahHK345wh-jysLQ5bCRcQtU0e2R1SzlJw6AZhoH1MRstktbIArZnts0EISF96vZWIgkDF9VazrEqS9wwPvwrxDO2UQMOb64Fv8YRwwyevjIol-USRAPApjf9VAv5KWieWI74Z3cShbl9sFdDzuHPlIkr_QgrqYKExg3Aou6Q","expire":1631053479908},"42b1008540fd45b2e6ffaa653f25e3f4":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJiYmQwNmFmOS05NTE2LTQ4YzQtYWEyMy01ODk4ZGY3ZWQ5OTAiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0yLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMl9CT3N1RllSUVciLCJ2ZXJzaW9uIjoyLCJjbGllbnRfaWQiOiI0cHRzb2RiZzE4NWg5NzI2M3BpY2lhbWFmZCIsIm9yaWdpbl9qdGkiOiIwMzk4ODc5ZC01ODcwLTRjYTktODg3MS1lYjM2YmIxNzhhOTgiLCJldmVudF9pZCI6IjhmOGE0YjFiLTY1NTEtNGZjNS05Mjc2LTg3MDkyMzU2NmExNCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MzEwNDc3NzMsImV4cCI6MTYzMTA1MTM3MywiaWF0IjoxNjMxMDQ3NzczLCJqdGkiOiJkMWY0OTFiYi1lZDllLTQ4YmEtOWU1OS0yMzQzYmNhZjI1NGUiLCJ1c2VybmFtZSI6InVzZXItMDEifQ.CJoYGKHp0WMhyTAeixdclcg9csDo_E1zaNbx7eAUMm2RoBQoIdNG4imYTeAsYFLjiqUH7SGFnYzvX0q_ZUdql4I3GUz1TIMhZlPQ4QesW0H2hhISkJhXFny0jpq_IEo-yr-eKxZ4_aTw-mxUrOCxs8sKZMQeoMIOLpxmemGCCzGB54Uec1ZvUitZ6bf6QeoxJpxs8ZjXGvv0hD7gl4o_C8HF2W5eOMUml6fqt3nia-LusTZ8SwfbroZcTOazExbprm8PN8dL4U5kqhiEDIFdJeXY2DMiRoeFP7WZYvFl1HrOmjp00acd_7rJryp3eoEraE8iLRM9BM9IlirzTZ74Xw","expire":1631051373720},"d423bb71bb21113fd846a444fbb2d43b":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiZWIxNWMwMmItYzM1Ny00ZjAzLWE4OGYtZTBiZmEzMTI1NTJkIiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0NzE1NSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUwNzU1LCJpYXQiOjE2MzEwNDcxNTUsInZlcnNpb24iOjIsImp0aSI6ImI2NTQzNmVlLTliYzgtNGEwYy05NzcyLTQzZjg4ZjMzMThjOSIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.A7oX3j0cD-e6eomNoixRC4z5kppLZChOhoXILpOi2WTMHN6HWCApLKZJcr1vmxW-1phWGdKfCYC4Xk3z4g__vUBVQ0E-FTMAmIJ9JPyckiHsgHtUtPHxMTMl663ONF0mNZ3DcIYUI8wvbkcVv9JVMuhD0WFFoiaFocJqWnN72PBDaTvZywPs0U1Oy8-J2wPV4c2GEyPUfzQvpxftOuAVA83PM5CbSDgmvmykrNGAaeaWTvYSBtxy5Ca0nLKZivvKp-Ki6OWXnfhZUTR_de_4NY-XTb32tUQY5cZyGdgolL_TP22zMYNufKec1COHo3GDoC6IlYB7IATYt6STp3J0mw","expire":1631050755411},"f3517dc832777ffe5919a190ce4a8610":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiZTE0ODUyNGEtZDQ5Zi00NmNmLTk4MzctMzRiMzViMzcxNDk1Iiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0OTU5NSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUzMTk1LCJpYXQiOjE2MzEwNDk1OTUsInZlcnNpb24iOjIsImp0aSI6IjY2Nzc4YjAyLTc2YmYtNDFjMS1iYTNiLThhZWRiYjJlNjRkNyIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.XYV3d1-SY_a2fHGVa9_G39FxrfY_FMtUqIKbHXNeT1jfGaU2LcebFcYRsIWHOB57RJGC5VmM7yTubnvHhF0MkqNx0jlqtUcmet-rTs6KeoXuP5_5ki08YwvjMgPdMe2d_4xJlCfFJMp3rZSnaKOFoFXo4Sfmb0sO6M7zjRYdJyxKpymcICXQE4995UrCKNvAD9N8Po6cefBjE2YSeTv11ZmVhJ9LSU6SqrN7Q-d6fB60tw3ik8x1Xneas9NN1OclYPA86zN6OuPx23vetIm3snBm6vx0Dmeg1bK4lH2IA8zMVgpQJboRx49sluMdZANX9SJo3_3p1_x-HwPF7OCy0w","expire":1631053195645},"15c3291761468025a9ba8a53ea83459d":{"value":"eyJraWQiOiJuSzlqaU9INzl5UHZuaEtDMDY4c3loREx6VW5DaFZpaTBCN0VuQllWazNVPSIsImFsZyI6IlJTMjU2In0.eyJvcmlnaW5fanRpIjoiZmZhNDFlNWYtN2UyYy00ODNkLWFkYTktYmFiNWNkMzAxMjQ5Iiwic3ViIjoiYmJkMDZhZjktOTUxNi00OGM0LWFhMjMtNTg5OGRmN2VkOTkwIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF1dGhfdGltZSI6MTYzMTA0OTg1NywiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC91cy1lYXN0LTJfQk9zdUZZUlFXIiwiZXhwIjoxNjMxMDUzNDU3LCJpYXQiOjE2MzEwNDk4NTcsInZlcnNpb24iOjIsImp0aSI6ImVlNjAwYTUxLTk0MTMtNDJjZS04ZTZmLTRiOTliZjNlMGEzZCIsImNsaWVudF9pZCI6IjRwdHNvZGJnMTg1aDk3MjYzcGljaWFtYWZkIiwidXNlcm5hbWUiOiJ1c2VyLTAxIn0.Jd1mPsYOK5GajjICSWCkVq8b2pxndF3-ZvTx1Df4ZOmRkZ3A8px_1xKcVjbiMGwq8JguNRbKlsK8hsy80sNox-jhVK34sp2oAsDlvmPL-fiJMhVUl9NrHwNSBQ4oUUN15F0lEZEKJBMyWagj0IIeUmVxKqgeaI_wqkYH6B5V2dwu5i47UEk0KqNYppFExsNec82-u09S8vQ1-FEilsvUVbDQWRgei_xB26Sw9hVhnCzbnSHYyEJzEM467r1alwdx4qF2cSRFPi-Lg4Sp7rgrDuHEX72XIlX3GWbqZ5V1tdh0jhN-VB0mDTu8sW93ouPSWEWwXpOrAKkWDAuUeL9D7A","expire":1631053457978}}
Loading