---
updatedAt: 2026-04-20T20:49:54.000Z
---

# Users don't see the "Back to App" button

#### Question

According to your documentation. there should be a button labeled **Back to App** in all our user profiles. So how come none of our users actually see this button?

#### Answer

Yes, in Hosted Login v2, it’s possible to add a **Back to App** button to a user’s user profile:

![](https://techdocs.akamai.com/identity-cloud/img/oidc/hosted-login-v2/troubleshooting-hosted-login-v2/hl-v2-troubleshooting-011.png)

If the user clicks this button, they’ll exit their user profile page and be redirected to a page of your choosing. (*Which* page of your choosing? As you might expect, that’s entirely your choice.)

This a big improvement over Hosted Login v1, which has no **Back to App** button: the only way for users to exit the user profile is to use their browser’s **Back** button or to enter a new URL in the address bar.

So, yes, the **Back to App** button is a much-welcomed new feature. Then why don’t your users see this button when they open *their* user profiles:

![](https://techdocs.akamai.com/identity-cloud/img/oidc/hosted-login-v2/troubleshooting-hosted-login-v2/hl-v2-troubleshooting-012.png)

Why didn’t these users get a **Back to App** button? Most likely that’s due to one (or both) of the following:

* The user isn’t running under Hosted Login v2.

* You didn’t include the **redirect\_uri** parameter in your link for opening the user profile.

Let’s take a look at the v2 issue first. The **Back to App** button is only available in Hosted Login v2; if you’re using a Hosted Login v1 client their you won’t see the **Back to App** button: Hosted Login v1 doesn’t support this feature. So how do you know which version of Hosted Login a user is running under? Well, the Hosted Login version you’re using is determined by the OpenID Connect login client you authenticated with (or, more correctly, by the login policy associated with that client). Want to know if a user is running Hosted Login v1 or v2? Then do this:

1. Check the authentication request to determine the login client the user used when logging on

[block:code]
{
  "codes": [
    {
      "code": "   https://v1.api.us.janrain.com/00000000-0000-0000-0000-000000000000/login/authorize?\n    client_id=55c9604-x457-464f-bgf5-83hj229ju5rf\n       &redirect_uri=https://documentation.akamai.com\n       &scope=openid profile email\n       &response_type=code\n       &state=3bd5262737237ef4a\n       &code_challenge= RTg4QjMyRUJCNzdBRTQ1MkM2NTAzRTVDOEQ5OTg3QjIwMjVBNTcxQTU5RTJFNDYwMzJBQjYx\n       RkM4NjQ0QzdBNw\n       &code_challenge_method=S256",
      "language": "http"
    }
  ]
}
[/block]

2. Use the value of the **client\_id** parameter and the /{customerId}/config/clients/{oidcClientId} endpoint to determine the login policy associated with the OIDC client:

[block:code]
{
  "codes": [
    {
      "code": "   {\n       \"id\": \"55c9604-x457-464f-bgf5-83hj229ju5rf \",\n       \"name\": \"Akamai Documentation Login Client\",\n       \"redirectURIs\": [\"https://localhost\"],\n    \"loginPolicy\": \"b8097975-93c7-46db-8cfe-19609e67eadb\",\n       \"tokenPolicy\": \"2dcae965-0d56-4961-a98e-f98583e30bb9\",\n       \"type\": \"public\",\n       \"\\_links\": {\n           \"self\": {\n               \"href\": \"/01000000-0000-3000-9000-000000000000/config/clients/\n   55c9604-x457-464f-bgf5-83hj229ju5rf \"\n           }\n       }\n   }",
      "language": "json"
    }
  ]
}
[/block]

3. Use the value of the **loginPolicy** property and the /{customerId}/config/policies/{loginPolicyId} endpoint and check the value of the policy’s **loginURL** property:

[block:code]
{
  "codes": [
    {
      "code": "    {\n       \"id\": \"b8097975-93c7-46db-8cfe-19609e67eadb\",\n       \"identityStoreDetails\": {\n          \"type\": \"janrainCapture\",\n          \"connectionDetails\": {\n               \"domain\": \"us-dev.janraincapture.com\",\n               \"applicationId\": \"ces7u7uwwudrxtz933jvbehzne\",\n               \"entityType\": \"user\",\n               \"clientId\": \"6s54fhenv535ek49hkz6hjsh3jgs93ud\",\n               \"clientSecret\": \"ku5hd43uswtnk8aszxdvuafumlk84gd4nw\"\n           }\n       },\n    \"loginURL\": \"https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/login\",\n      \"title\": \"SE gstemp@akamai.com Dev Login Policy\",\n     \"\\_links\": {\n          \"self\": {\n               \"href\": \"/config/e0a70b4f-1eef-4856-bcdb-f050fee66aae/loginPolicies/\n   b8097975-93c7-46db-8cfe-19609e67eadb\"\n           }\n       }\n    }",
      "language": "json"
    }
  ]
}
[/block]

In the preceding example, we know that the login policy *isn’t* configured for Hosted Login v2. How do we know that? Well, the **loginURL** property looks like this:

[block:code]
{
  "codes": [
    {
      "code": "\"loginURL\": \"https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/login\"",
      "language": "json"
    }
  ]
}
[/block]

That’s a v1 login URL. If it wasn’t, we’d see the **v2** version number in the URL, sandwiched between **auth-ui** and **login**:

[block:code]
{
  "codes": [
    {
      "code": "\"loginURL\": \"https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/v2/login\"",
      "language": "json"
    }
  ]
}
[/block]

Which means that, if we want users of this particular OIDC login client to see the **Back to App** button, we need to do one of the following:

* Upgrade the current login policy to Hosted Login v2.

* Assign the client a different login policy, one that *has* been upgraded to v2.

Of course, it’s possible that you *are* using Hosted Login v2 and yet users still don’t see the **Back to App** button. That’s probably because you didn’t include the **redirect\_uri** in the link those users employ to access their user profile. For example, suppose you as users to click the following link whenever they want to access their user profile

[block:code]
{
  "codes": [
    {
      "code": "https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/profile\n     ?client_id=64430515-01ea-4f5d-82e4-c36161af0093",
      "language": "http"
    }
  ]
}
[/block]

Those users will *not* see the **Back to App** button. To get the button to appear, you need to add the **redirect\_uri** parameter followed by the URL of the page you want users to be redirected to when they click the **Back to App** button. For example:

[block:code]
{
  "codes": [
    {
      "code": "https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/profile\n     ?client_id=64430515-01ea-4f5d-82e4-c36161af0093\n     &redirect_uri=https://identitydocs.akamai.com",
      "language": "http"
    }
  ]
}
[/block]

If the user clicks this modified link, they’ll:

1. See the **Back to App** button in their user profile.

2. Be redirected to h<span>ttp</span>s\://identitydocs.akamai.com if they click that button.

Problem solved.

# Sibling pages

* [2FA screens don't appear as expected](https://techdocs.akamai.com/identity-cloud/docs/why-your-two-factor-authentication-screens-arent-appearing.md)
* [2FA seems to have stopped working](https://techdocs.akamai.com/identity-cloud/docs/why-your-users-have-stopped-going-through-two-factor-authentication.md)
* [Prevent users from trusting their devices](https://techdocs.akamai.com/identity-cloud/docs/hide-the-trust-this-device-checkbox.md)
* [New users must verify their email address twice](https://techdocs.akamai.com/identity-cloud/docs/why-new-users-have-to-verify-their-email-address-twice.md)
* [Users can't get their access codes by text message](https://techdocs.akamai.com/identity-cloud/docs/why-your-users-cant-get-their-access-codes-sent-via-text-message.md)
* [Users are unable to trust a device](https://techdocs.akamai.com/identity-cloud/docs/why-your-users-dont-see-the-trust-this-device-checkbox.md)
* [A trusted device still goes through 2FA](https://techdocs.akamai.com/identity-cloud/docs/why-a-user-has-to-go-through-two-factor-authentication-even-though-she-trusted-her-device.md)