Explore Philand
  • Welcome to Phi
    • 🏝️What's Phi?
    • 🌄Mission
    • 🏃‍♀️Story
    • 🏄Phi Crew
  • ⚡Products
    • 🏝️Phi Land
      • 🔦User Guide for Phi Land
        • 0️⃣Before Playing Phi
          • 🦊Download a Crypto Wallet
          • 🟣Get $MATIC
          • 🔷Get an ENS Domain
        • 1️⃣Access Phi Land
        • 2️⃣Create your Phi Land
        • 3️⃣Claim Quest Objects
        • 4️⃣Purchase Items on Shop
        • 5️⃣Deposit Objects to Land
        • 6️⃣Build your land
        • 7️⃣Share your land on Twitter
      • 🎧Phi Music
      • ⛓️Hyperlinks & Link List
      • 💫Transferring Land
      • ↔️Phi Connect
    • ⚔️Phi Quest
      • 🔦User Guide for Phi Quest
        • 0️⃣Before Playing Phi
          • 🦊Download a Crypto Wallet
          • 🟣Get $MATIC
        • 1️⃣Access Phi Quest
        • 2️⃣Claim Quest Objects
          • Quest List
          • Adventure
          • Campaign
        • 3️⃣Purchase Items on Shop
        • 4️⃣Play Phi Land with Items you got
      • 🧑Account
      • 🏅Active Score Rank Quests
    • 🍭Phi Opportunity (beta)
    • 💎Phi Material
      • ⚒️Phi Craft
      • 🥗UGC Craft
    • 🔮OpenSea Collection Links
    • 💡How-to's
      • 🏷️Mastering ENS (Ethereum Name Service)
        • How to Register an ENS Domain Name
        • How to Renew an ENS Domain Name
        • How to Manage ENS records
          • How to set up the Avatar record in ENS
            • Using MintYourPFP to set an Avatar to an ENS name
        • How to Transfer ENS to Another Wallet
        • How to set up an ENS Subdomain
    • ❓FAQ
      • Must I have an ENS to play Phi Quest?
      • How can I get an ENS domain?
      • Why don't my ENS domains show up?
      • Can I use ENS subdomains for Phi Land?
      • What happens when I transfer ENS?
      • I can't create a land
      • Why cannot access to my land?
      • Why can't I change the baseplate?
      • Why can’t I claim Quest objects?
      • Any rewards for participating in Testnet?
      • What is Phi Quest?
      • How the Leaderboard on Phi Quest is calculated?
      • Why are there two EXPs?
      • I claimed objects on Phi Quest. How can I create my Phi Land?
      • Why can’t I see my objects in my wallet?
      • Can I trade Quest Objects?
      • Are traded objects included in my EXP calculation?
      • My EXP not showing, leaderboard not updating
      • Which browser should I use?
      • Which devices are supported?
      • How to update my Twitter OGP image (card)?
    • 📬Submit Feedback
      • Bug Report
      • Feature Request
      • User Survey
  • ⚙️DEVELOPERS
    • 🪴Create Philand
    • 🎨Objects NFT
      • ⛓️Quest Object
      • 🌾Free Object
      • 🧊Premium Object
      • 🍰Baseplate Object
      • 🧮Wallpaper Object
      • 💄Other Topics
      • 💡Appendix
    • 🛠️Use PhiMap
      • 🗺️Deposit/Withdraw
      • 🍧Save Philand
      • 👀View Function
      • 💡Appendix
    • 💝Philand API
      • ⌚Introduction
      • 🔑Authentication
        • 😄Use API key
        • 😍Get Access Token
        • 🤩Verify Access Token
        • 🤪Get Refresh Token
        • 😎Refresh JWT
      • 🫔Quest
        • 🎾Get Quest List
        • 🏀Get Quest Status
        • ⚽Trigger Eligible Check
        • 🎯Get Claimed Status
        • 🏓Get Verify Coupon
      • 🏝️Philand
        • 🫑View Philand Link
        • 🍍Get Philand Image
      • 🧸Account
        • 🍞Get Philand List
        • 👑Get PhiRank
      • 🎺Object
        • 🎸Get Object Info
      • 🦖Example Call
        • 🤠Quest Claim
      • 👔Related Links
    • 🧑‍🏫How to Verify your transaction
      • 👓Read Contract Method
      • 🚩Third-party API
      • 🦷Whitelist
    • 📄Contracts
      • 👮Audit
  • 💼Career
    • 👯Phi is hiring
  • 🔗Official links
    • Website
    • Twitter
    • Discord
    • Discourse
    • Medium
    • Github
    • Guild.xyz
    • Lenster
    • Instagram
Powered by GitBook
On this page

Was this helpful?

  1. DEVELOPERS
  2. Philand API
  3. Authentication

Refresh JWT

Your access token has a validity of 30 minutes, after which it will expire. To obtain a new access token, you must refresh it using the refresh token. It is the responsibility of you to ensure that the access token is refreshed before it expires.

Request

  • GraphAPI

mutation refresh {
  refresh(input: {refreshToken: "eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAifQ.JZZLMti_1TUtMjoDKERID_-oGvcEJgMy5TV_3F-eP0RFRdo7PPYFo56xpViEd80zWkf_Z9W8Qdc_sDzotLu921th6KVeAbWbz8AzqlQplYhKoIt5n9xgkMfSS2Q9v9fVwjfqx-x66GufoHvGwuEfN-0kXKT5pHhP_4C69iVg4wtTqMUwbC4VOcGbNwblxV5Dp088x85LtXaBk0dnN4lNozYdGY-nClNGRDQi3DrMFpl-d6L2NuyQLyY5U9PypWMa1oUn3cfv3HSOw62fmXvxKH6Ig9xD82OKFiSd-pV9hCnOguX_wSCiV3Crg8TlVAcIfCzBH2e2LKT0QPc7qosR2g.y9AnhAXtaZKmRmfp.kAeEUClVg5CYJjb-Uh_ytZeAkMGv6G0K_yQ0ZL51Mefg2DNbKWZrndE0o9gzsanlJ0cjXXknmRiIimpTViHLBKkI1euDUOQBfT3LquqgWSCXwj3OQS8klOTQEeWiPGcv_DiA6rvmrwMK5CIQljpS_uOH-YNV_AUMo8lO8zp2NDoWq2nDgTEKrT_7HhOM91D-DdvEtSC1mdcX3bt8GeeTjj4os9fSvPUykT8G1r-v1KRLQBfI_cCzWTZCQnbZJB1UO9v6e0HUZbW5l3p0gJ9EssvAKK2IZji7X9VfZxH4uYFs7pB8otjaPeMZvNur-rWQ4QZ9OaLqs1DgewnGl8gWcKQzV8uh-KoC7VGtCeAzqiO2Nz-pTaOjiG-sWqyCFv1OXyAjTZfKaYXW2QeXZkb22i4xFUfgqGyTp12AXxb1KlCo67JW29zYf53I04TYZMVO5UWztqzTjtCC3JQ8M04s0XZP_rCNiL-Zrw-IYUe7IMzVDIr22B9VKDtwZNqjsaSSihzAWg9urkUmKGK9udsSL8P82hR2dIMgi_hvD4WJf-eKPHPmwjFzRal71f9267sZFSKwumGO-vv6YonAngkA24vnMXyOdAFOI8TB_jz4n5b4kdO-nNcD5v3KZvernuFLldfsCyowwlpZK1inHJ5kqFatoR9iONK5tPKqNOIjm8riTDdv6WTCG3swcqn_nxggTm8MrQkn-Xt7E-L4Q8UbSYrZ6wfmP83MPapMCal5wKEepZKMo-Qf2wpr8gVuH0riEZEZ8A1sJogLKXgxgTnejeLiCwMDmx0F2g7K67lrh1Jm7YUC0d4NAMl8PVX711hz7E4oNd5qu5KVKi0EiUw_8XLxW0ZAb_m_iHsfiAjpjtuLsGAqCAUuwJmuJ4Nd9-CTICd44AnHycE_TLetUEOn_1U8DBSXdCKUQ4P3AEzxsVCp9QnJUuH7Hf-SVlGiGNwhkToMZ9DZNlyBg7S0N0z6H-EBNQBtNX34te44u749IyPdjRJIZq46Ah-XFTaMza_HdrFSXSN0jVM9y4Jlk0GSDL2klUrVOW9cJnGP7Hv2J68Jet_0-dYM3kwI74c9WS3wLm6Cfp9fi-fOVXo3fBKiyCMZAj7bxi7LAn_HV9hylS4VBdWey37kxUnlO52DkdgEbkmmG_Aa5YVCDxqIpRbnaPwdeIpFxFgNbC-OqWkfc_KxBA8LASwkg4X7G3mTi7OqyKPO481X5U01Ehh3BvlIRcKAalpD9oH2Q_zHcnAGLSlbMuSDkgXkdO4Q0S8k1bp58zJE3Hj7MIX7cupjXQ.1ZEzizB6p5ZBfNEmCzx3CA"}) {
    data {
      accessToken
    }
  }
}

Typescript

import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js';
import * as dotenv from 'dotenv';

console.error('*** start ***');

dotenv.config();
const user_pool_id = process.env.USER_POOL_ID!;
const user_pool_client_id = process.env.USER_POOL_CLIENT_ID!;
const usr = process.env.USER_NAME!;
const refresh_token = process.env.REFRESH_TOKEN!;

const poolData: AmazonCognitoIdentity.ICognitoUserPoolData = {
  UserPoolId: user_pool_id,
  ClientId: user_pool_client_id,
};

const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

const userData: AmazonCognitoIdentity.ICognitoUserData = {
  Username: usr,
  Pool: userPool,
};
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);

function refreshAccessToken(
  refreshToken: string,
  cognitoUser: AmazonCognitoIdentity.CognitoUser
): Promise<string> {
  const refreshTokenObj = new AmazonCognitoIdentity.CognitoRefreshToken({
    RefreshToken: refreshToken,
  });
  return new Promise((resolve, reject) => {
    cognitoUser.refreshSession(refreshTokenObj, (err, session) => {
      if (err) {
        reject(err);
      } else {
        resolve(session.getAccessToken().getJwtToken());
      }
    });
  });
}

refreshAccessToken(refresh_token, cognitoUser)
  .then((accessToken: string) => {
    console.log('Access token');
    console.log(accessToken);
  })
  .catch((err) => {
    console.error('*** error ***');
    console.error('error ' + err);
  });

console.error('*** end ***');

PreviousGet Refresh TokenNextQuest

Last updated 2 years ago

Was this helpful?

⚙️
💝
🔑
😎