# Authentication

## Requisites

Before you can interact with Securitize iD APIs, request from Customer Success team the following information:

* **issuerID or DomainID**: this is the ID which identifies your unique Domain.
* **OAuthsecret:** this is the OAuth secret.
* **Base URL:** where to connect to Securitize iD (Sandbox or Production environments).

You will have to provide a **redirectURL** to a server where your logic is running. This URL has to be **whitelisted** by Securite. You can find more information of how to perform the process [here](/whitelisting/whitelisting-redirected-urls.md).&#x20;

In order to integrate Securitize iD as an authentication procedure, you will just have to add a Log in with Securitize iD button to your log in/registration page. That button will provide a link to initiate the OAuth process so the user can login and carry out the verification steps.

![Securitize iD Log in button](/files/-M8p1g-neVqd4-gSEOrg)

## The initial flow

![](/files/-MdpdasK6tQX3RjNE5BF)

## Initiating the OAuth process

To initiate the authentication process simply redirect the user to:

{% tabs %}
{% tab title="URL" %}

```http
https://id.securitize.io/#/authorize?issuerId=[CLIENT_ID]&scope=[SCOPE]&redirecturl=[REDIRECT_URL]
```

{% endtab %}
{% endtabs %}

| Parameter     | Description                                                                                              |
| ------------- | -------------------------------------------------------------------------------------------------------- |
| CLIENT\_ID    | Your application client id provided by Securitize                                                        |
| SCOPE         | Scope of data access (we currently only support `info details verification)`                             |
| REDIRECT\_URL | The url to redirect after investor signs the data share agreement. MUST be list in `redirectUrls` array. |

### Example:

{% tabs %}
{% tab title="URL Call" %}

```
https://id.securitize.io/#/authorize?issuerId=123e4567-e89b&scope=info%20details%20verification&redirecturl=https://dashboard.securitize.io/authorization
```

{% endtab %}

{% tab title="HTML" %}

```markup
<body>
 <div id="SecuritizeID">
 </div>
</body>
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
function showSecuritizeIDLogInLogo() {
   var baseUrl     = "STRING";
   var issuerID    = "STRING";
   var scope       = "info details verification";
   var redirecturl = "URL"

   var securitizeID = document.getElementById("SecuritizeID");
   var link = document.createElement("a");
   var logo = document.createElement("img");

   var href = baseUrl + "#/authorize" + "?issuerId=" 
              + issuerID + "&scope=" + scope + "&redirecturl=" + redirecturl;
   logo.src = "./images/securitizeID.png";
   link.href = href;
   link.appendChild(logo);
   securitizeID.appendChild(link);
 }
```

{% endtab %}
{% endtabs %}

## Working with OAuth response

If the process was successful we will return the following data added to your redirect url

```http
https://REDICT_URL?code=40cba031-8fd2-4a88-89ff-36e07e5e060b&country=US&authorized=true
```

| Parameter  | Description                                                                                                                                                                               |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| code       | Authorisation code used to get the user access token. (Code will expire after 5 minutes)                                                                                                  |
| country    | Securitize iD Investor country                                                                                                                                                            |
| authorized | Returns `true` if investor was authorized on with your Application in the past. NOTE: does not return if its the first time investor is going through OAuth process with your application |

### Example:

This JavaScript snippet captures the query string of the redirected URL:

```javascript
 function captureTOKEN() {
   const queryString = window.location.search;
   const urlParams   = new URLSearchParams(queryString);
   const code        = urlParams.get("code");
   const country     = urlParams.get("country");
   const authorized  = urlParams.get("authorized");
   console.log(code, country, authorized);
   if (authorized == "true") {
     // User has signed-up and has a SecuritizeID
   }
 }
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sec-connect-api-docs.securitize.io/authentication-1/authentication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
