> ## Documentation Index
> Fetch the complete documentation index at: https://developer.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Refresh a Token

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

<RelatedLinks
  title="REQUIRED GUIDES"
  items={[
{ label: translate("Tokens"), href: "/guides/authentication/tokens/index", badge: "GUIDE" }
]}
/>

An Access Token can be refreshed by using the Refresh Token that came with the
Access Token. This can be done before or after the Access Token expires.

To do this, the application passes the `refresh_token` to the [`POST
/oauth2/token`](/reference/post-oauth2-token) endpoint as follows.

<Info>
  **Usage in SDKs**

  All of the Box SDKs support automatic Access Token renewal for JWT and OAuth 2.0
  applications.
</Info>

<Danger>
  **Refresh token expiration**

  A Refresh Token is valid for 60 days and can be used to obtain a new Access
  Token and Refresh Token only once. If the Access Token and Refresh Token are
  not refreshed within 60 days, the user will need to be re-authorized.

  Every time an application uses the Refresh Token to get a new Access Token the
  Refresh Token is invalidated and a new Refresh Token is returned with the
  new Access Token.

  This new Refresh Token is then again only valid for 1 use within 60 days.
</Danger>

<RelatedLinks
  title="RELATED APIS"
  items={[
{ label: translate("Request access token"), href: "/reference/post-oauth2-token", badge: "POST" }
]}
/>

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Authentication"), href: "/guides/authentication/index", badge: "GUIDE" }
]}
/>
