---
title: Login with self-service
description: The Ping Identity Platform login flow is set up to use self-service, as in the sample Login journey. This journey lets end users log in using their Ping Identity Platform credentials and increment a login counter. End users are then sent through a separate progressive profile journey. The login journey can be expanded to include other features, such as support for identity providers. For more details, refer to Social authentication.
component: platform
version: 7.5
page_id: platform:platform-self-service:login
canonical_url: https://docs.pingidentity.com/platform/7.5/platform-self-service/login.html
llms_txt: https://docs.pingidentity.com/platform/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Journeys", "Nodes &amp; Trees", "Social Authentication"]
section_ids:
  social-login: Configure social identity providers
  login-rest-sample: Example login REST output
---

# Login with self-service

The Ping Identity Platform login flow is set up to use self-service, as in the sample Login journey. This journey lets end users log in using their Ping Identity Platform credentials and increment a login counter. End users are then sent through a separate progressive profile journey. The login journey can be expanded to include other features, such as support for identity providers. For more details, refer to [Social authentication](social-registration.html).

![Example login journey](_images/PlatformLogin.png)

The following nodes are associated with login journeys:

* [Platform Username node](../auth-node-ref/platform-username.html)

  The [Platform Username node](../auth-node-ref/platform-username.html) is used in both login and registration journeys. It collects the username of the end user.

* [Platform Password node](../auth-node-ref/platform-password.html)

  The [Platform Password node](../auth-node-ref/platform-password.html) is used in both login and registration journeys. It collects the password of the end user.

* [Data Store Decision node](../auth-node-ref/data-store-decision.html)

  The [Data Store Decision node](../auth-node-ref/data-store-decision.html) takes a username and password and validates they match an existing user in the configured data store (in this case, an IDM managed user).

## Configure social identity providers

To include social identity providers as a method of authentication, configure the Social Identity Provider Service in AM to include either some form of social registration or social account claiming. For more information, refer to [Social authentication](social-registration.html). Once this is set up, add social identity provider support to your login journey.

1. To get started with social logins, you can create a new journey, modify the existing login journey, or duplicate the login journey and modify that.

   This example uses the following nodes:

   * A [Page node](../auth-node-ref/page.html) containing:

     * A [Platform Username node](../auth-node-ref/platform-username.html).

     * A [Platform Password node](../auth-node-ref/platform-password.html).

     * A [Select Identity Provider node](../auth-node-ref/select-identity-provider.html).

   * A [Social Provider Handler node](../auth-node-ref/social-provider-handler.html).

   * A [Data Store Decision node](../auth-node-ref/data-store-decision.html).

   * An [Increment Login Count node](../auth-node-ref/increment-login-count.html).

   * An [Inner Tree Evaluator node](../auth-node-ref/inner-tree-evaluator.html).

2. Connect the starting node to the [Page node](../auth-node-ref/page.html).

3. Connect the Social Authentication output on the [Page node](../auth-node-ref/page.html) to the [Social Provider Handler node](../auth-node-ref/social-provider-handler.html).

4. On the [Social Provider Handler node](../auth-node-ref/social-provider-handler.html), connect the Account Exists output to the [Increment Login Count node](../auth-node-ref/increment-login-count.html). Connect the No Account Exists output to the Failure node.

5. On the [Page node](../auth-node-ref/page.html), connect the Local Authentication node to the [Data Store Decision node](../auth-node-ref/data-store-decision.html).

6. On the [Data Store Decision node](../auth-node-ref/data-store-decision.html), connect the True output to the [Increment Login Count node](../auth-node-ref/increment-login-count.html). Connect the False output to the Failure node.

7. Connect the [Increment Login Count node](../auth-node-ref/increment-login-count.html) to the [Inner Tree Evaluator node](../auth-node-ref/inner-tree-evaluator.html) node.

8. The [Inner Tree Evaluator node](../auth-node-ref/inner-tree-evaluator.html) node points to another journey, letting you chain multiple journeys together.

   By default, this is set to point to the `ProgressiveProfile` journey. For more information about progressive profiles, refer to [Progressive profile](progressive-profile.html).

   Connect the [Inner Tree Evaluator node](../auth-node-ref/inner-tree-evaluator.html) node to the Success node.

The resulting login journey will look something like this:

![Example login journey with social identity providers enabled](_images/social-login.png)

## Example login REST output

When calling a login self-service endpoint, you will receive a JSON object back, containing callbacks for each of the nodes included in the login journey.

> **Collapse: Sample JSON callbacks**
>
> ```json
> {
>   "authId": "<omitted for length>",
>   "callbacks": [
>     {
>       "type": "ValidatedCreateUsernameCallback",
>       "output": [
>         {
>           "name": "policies",
>           "value": {}
>         },
>         {
>           "name": "failedPolicies",
>           "value": []
>         },
>         {
>           "name": "validateOnly",
>           "value": false
>         },
>         {
>           "name": "prompt",
>           "value": "Username"
>         }
>       ],
>       "input": [
>         {
>           "name": "IDToken1",
>           "value": ""
>         },
>         {
>           "name": "IDToken1validateOnly",
>           "value": false
>         }
>       ],
>       "_id": 0
>     },
>     {
>       "type": "ValidatedCreatePasswordCallback",
>       "output": [
>         {
>           "name": "echoOn",
>           "value": false
>         },
>         {
>           "name": "policies",
>           "value": {}
>         },
>         {
>           "name": "failedPolicies",
>           "value": []
>         },
>         {
>           "name": "validateOnly",
>           "value": false
>         },
>         {
>           "name": "prompt",
>           "value": "Password"
>         }
>       ],
>       "input": [
>         {
>           "name": "IDToken2",
>           "value": ""
>         },
>         {
>           "name": "IDToken2validateOnly",
>           "value": false
>         }
>       ],
>       "_id": 1
>     }
>   ],
>   "header": "Sign In",
>   "description": "New here? <a href=\"#/service/Registration\">Create an account</a><br><a href=\"#/service/ForgottenUsername\">Forgot username?</a> <a href=\"#/service/ResetPassword\">Forgot password?</a>"
> }
> ```
