# Authenticate a user

```
POST 
/jwt/authenticate/:user_id
```

Use this endpoint to get JWT tokens to authenticate a user with the Nabla Core API. These tokens only gives access to resources for the specified user. This endpoint should typically be called by your backend on behalf of an authenticated user, and the resulting JWT tokens should be forwarded to the user's frontend securely.

## Request[​](#request "Direct link to request")

## Responses[​](#responses "Direct link to Responses")

* 200

Tokens.

## Operation spec

```json
{
  "method": "post",
  "path": "/jwt/authenticate/{user_id}",
  "operationId": "jwt-authenticate-user",
  "parameters": [
    {
      "name": "user_id",
      "description": "The unique identifier of the user.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "description": "A unique identifier.",
        "example": "98FCE1EF-DBCA-41EF-8BC7-4D1621AC07C6",
        "title": "uuid"
      },
      "example": "23A9981B-9E46-4ADB-BB0B-8E406C624540"
    }
  ],
  "responses": {
    "200": {
      "description": "Tokens.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "description": "The tokens for an authenticated session.",
            "properties": {
              "access_token": {
                "description": "A (typically) short-lived JWT token used to access authenticated resources, e.g. the Nabla User API.",
                "type": "string",
                "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYWNjZXNzIiwic3ViIjoiMTIzNDU2Nzg5MCIsIm5hbWUiOiJKb2huIERvZSIsImlhdCI6MTUxNjIzOTAyMn0.v5qdy8w9Ygs5fdic9a1LuX76PUdx3omYd5GlDTAF3Ug",
                "title": "jwt_token"
              },
              "refresh_token": {
                "description": "A (typically) long-lived JWT token allowing you to \"refresh\" your access to resources (i.e. extend your session,  returning a fresh access token and a new refresh token with a later expiration).",
                "type": "string",
                "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYWNjZXNzIiwic3ViIjoiMTIzNDU2Nzg5MCIsIm5hbWUiOiJKb2huIERvZSIsImlhdCI6MTUxNjIzOTAyMn0.v5qdy8w9Ygs5fdic9a1LuX76PUdx3omYd5GlDTAF3Ug",
                "title": "jwt_token"
              }
            },
            "required": [
              "access_token",
              "refresh_token"
            ],
            "title": "session_tokens"
          }
        }
      }
    }
  }
}
```
