# Ultimate Guide For IDS Setup

**URL:** https://community.neutrinos.com/t/ultimate-guide-for-ids-setup/1873
**Category:** Best Practices & Tutorials
**Tags:** neutrinos-ssd
**Created:** [March 30, 2026, 9:10am UTC](https://community.neutrinos.com/t/ultimate-guide-for-ids-setup/1873 "2026-03-30T09:10:23Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Sidharth\_K\_P](https://community.neutrinos.com/user_avatar/community.neutrinos.com/sidharth_k_p/32/140_2.png) [@Sidharth\_K\_P](https://community.neutrinos.com/u/Sidharth_K_P)
#### Post date: [March 30, 2026, 9:10am UTC](https://community.neutrinos.com/t/ultimate-guide-for-ids-setup/1873/1 "2026-03-30T09:10:23Z")

</div>

# 🔐 IDS Setup for Production Apps — The Complete Walkthrough

Hey Neutrinos community! 👋

If you’ve been struggling with IDS (Identity Service) configuration — especially for **production-based applications** — this post is for you. I’ve put together everything you need, from registering your app all the way to wiring up standalone credentials and callback URIs. Let’s get into it! 🚀

* * *

## 🧭 What We’re Covering

- Registering your app with IDS

- Frontend setup (environments + OAuth client)

- Backend standalone credential config

- Setting up login/logout callback URIs

* * *

## STEP 1 — Register Your App with IDS ⚙

Head into your Neutrinos app settings and do the following:

✅ **Enable the IDS toggle** — this activates identity service for your app

✅ **Add your Application Name** — how your app identifies itself to IDS

✅ **Skip Team Check** _(optional)_ — turn this on if you want to allow **external users** to log in without going through Active Directory / team validation

✅ **Skip Consent** _(optional)_ — turn this on if your users already have an active IDS session and you want to skip the consent screen on re-login

* * *

## STEP 2 — Frontend Setup 🖥

### 2a. Set the Environment Flag

In your app’s **Environments config** , add:

```auto
"isIDSEnabled": true

```

* * *

### 2b. Install the OAuth Client

```auto
npm i neutrinos-oauth-client

```

* * *

### 2c. Import It in `onInit`

Use a **Dependency Node** inside your `onInit` event to import `neutrinos-oauth-client`.

> ⚠ Don’t forget — the **Injectable toggle must be ON** , otherwise the module won’t be available across your pages!

* * *

### 2d. Use It Anywhere in Your Page

Once imported, you can call its methods freely. Here’s the basic login guard pattern most of us use:

```auto
if (!page.noc.isLoggedIn) {
  await page.noc.login("home")
}

```

Simple, clean, works great. 🙌

* * *

> 💡 **New to IDS?** Before going further, complete the foundational setup from the official guide: 📖 **IDS Authentication Backend and Frontend Setup** — Community / Training, Academy & Certifications Get that done first, then come back here for the production bits below 👇

* * *

## STEP 3 — Production Config: Standalone IDS Credentials 🔑

This is where most people get stuck. For production apps, you’re not using the shared platform IDS — you need to configure the **standalone IDS credentials specific to your project**.

There are **two files** you need to update in SSD:

| What | Where |
| --- | --- |
| `config.ts` | `server → src → config → config.ts` |
| `config.json` | `designs → server → config.json` |

In both files, find the `ids` object and plug in your values:

**`config.ts`**

```auto
ids: {
  clientId: "YOUR_CLIENT_ID",
  secret: "YOUR_CLIENT_SECRET",
  issuerURL: "https://your-standalone-ids-url"
}

```

**`config.json`**

```auto
"ids": {
  "clientId": "YOUR_CLIENT_ID",
  "secret": "YOUR_CLIENT_SECRET",
  "issuerURL": "https://your-standalone-ids-url"
}

```

> 📌 These credentials come from the **standalone IDS instance created for your project** — not the global Neutrinos platform IDS.

* * *

## STEP 4 — Add Callback URIs in Your IDS Schema 🔗

Almost there! Last step is registering your callback URLs inside your project’s IDS schema.

**Where to find it:** Go to the **IDS schema created for your project** → open the **Client table** → find the row for your `clientId` → add the URIs.

**Add both localhost AND your production domain:**

```auto
# Login Callback
http://localhost:<PORT>/login/cb
https://your-production-domain.com/login/cb

# Logout Callback  
http://localhost:<PORT>/logout/cb
https://your-production-domain.com/logout/cb

```

> ⚠ Replace `<PORT>` with your actual backend port (e.g. `3000`, `8080`) and the domain with wherever your IDS-configured backend is deployed.

* * *

## ✅ Pre-Launch Checklist

Before you go live, run through this quick check:

**Platform**

- [] IDS toggle ON

- [] App name set

- [] Skip Team Check / Skip Consent configured as needed

**Frontend**

- [] `isIDSEnabled: true` in Environments

- [] `neutrinos-oauth-client` installed

- [] Dependency Node added in `onInit`

- [] Injectable toggle ON

- [] Login guard implemented on protected pages

**Backend**

- [] `clientId`, `secret`, `issuerURL` set in `config.ts`

- [] Same values set in `config.json`

**IDS Schema**

- [] Login callback URIs added (localhost + production)

- [] Logout callback URIs added (localhost + production)

* * *

## 📁 Quick File Reference

```auto
designs/
└── server/
    └── config.json ✏️ Add IDS credentials here

server/
└── src/
    └── config/
        └── config.ts ✏️ Add IDS credentials here

```

* * *

That’s it! Hope this saves someone a few hours of digging around. 😄

If anything’s unclear or you hit a snag, drop a comment below — happy to help. And if this helped you, give it a 👍 so others can find it easily!

Happy building! ⚡

_— Posted in Community / Training, Academy & Certifications_

---

<div class="post-metadata">

### Author: ![doomedCode](https://community.neutrinos.com/user_avatar/community.neutrinos.com/doomedcode/32/49_2.png) [@doomedCode](https://community.neutrinos.com/u/doomedCode)
#### Post date: [August 13, 2026, 7:27am UTC](https://community.neutrinos.com/t/ultimate-guide-for-ids-setup/1873/2 "2026-08-13T07:27:15Z")

</div>

Hey @Sidharth_K_P ,

Awesome guide!  
You might need to keep up with this:

[https://community.neutrinos.com/tag/identity-server/36](https://community.neutrinos.com/tag/identity-server/36)

---

<div class="post-metadata">

### Author: ![Raguraman](https://community.neutrinos.com/letter_avatar_proxy/v4/letter/r/e495f1/32.png) [@Raguraman](https://community.neutrinos.com/u/Raguraman)
#### Post date: [September 21, 2026, 5:48am UTC](https://community.neutrinos.com/t/ultimate-guide-for-ids-setup/1873/3 "2026-09-21T05:48:39Z")

</div>

Hi @Sam  
I have configured IDS authentication for my application by following the **“Ultimate Guide for IDS Setup”**.

The IDS authentication is working correctly in my **local environment** , but the same configuration is **not working in the production environment**.  
Configuration Done

As mentioned in the IDS setup guide, I have configured the following:

### 1. Frontend

```auto
"isIDSEnabled": true

```

`neutrinos-oauth-client` is installed and configured.

 ![image](https://community.neutrinos.com/uploads/default/original/2X/9/9cad12ba6d1266ebff37327900049f8343bf9161.png)

 ![image](https://community.neutrinos.com/uploads/default/original/2X/d/db2d77819631a0b0402d68b9495002b23606fe04.png)

 ![image](https://community.neutrinos.com/uploads/default/original/2X/2/29d8b03a26a3f8b3bef1f4606b9c5e91986be02e.png)

 ![image](https://community.neutrinos.com/uploads/default/original/2X/a/a2daf39b49e3118ce1a604e695980f1ae94de418.png)  
my config.ts:  
ids: {

```
client_id: 'v……………',

client_secret:

  'f2rrA…………………………….',

issuerURL: 'https://ids.neutrinos.co',

enabled: true,

```

}  
config.json:  
“ids”: {

```
    "client_id": "vkA……………",

    "client_secret": "f2rr………………",

    "issuerURL": "https://ids.neutrinos.co",

    "enabled": true

}

```

 ![image](https://community.neutrinos.com/uploads/default/original/2X/c/cf8a124d3ecc949611ed27c5940c6addc655c318.png)

 ![image](https://community.neutrinos.com/uploads/default/original/2X/4/4e0ccd36a3b1cb563baa3262a366d0b5dbeaa620.png)

 ![image](https://community.neutrinos.com/uploads/default/original/2X/5/588194e06b89367c4ecd63c755182d330803c094.png)  
Issue

When I access the production application and try to log in, the IDS login flow starts, but after authentication the callback is not completed successfully.  
api logs:  
**11:10:58 AM**

============================================

**11:10:58 AM**

Nonce: c64dc093aa4ab47c08a65f92423c78f1

**11:10:58 AM**

State: 811e28b7eb5c3f0d3c98ec33407fc3dc

**11:10:58 AM**

}

**11:10:58 AM**

redirectTo: ’ [N-App](https://u.neutrinos-apps.com/ui) ’

**11:10:58 AM**

isMobile: undefined,

**11:10:58 AM**

nonce: ‘c64dc093aa4ab47c08a65f92423c78f1’,

**11:10:58 AM**

state: ‘811e28b7eb5c3f0d3c98ec33407fc3dc’,

**11:10:58 AM**

Session data: {

**11:10:58 AM**

Session ID: nYop4E0pZPa9eiNoYRRY5hIl8jz1Vi3U

**11:10:58 AM**

========== IDS LOGIN SESSION DEBUG ==========

**11:11:01 AM**

============================================

**11:11:01 AM**

Nonce: f8cd44f68e58e05459f2af02299e16ea

**11:11:01 AM**

State: 87733dcfee292f5181e9bcd269e9f5bf

**11:11:01 AM**

}

**11:11:01 AM**

redirectTo: undefined

**11:11:01 AM**

isMobile: undefined,

**11:11:01 AM**

nonce: ‘f8cd44f68e58e05459f2af02299e16ea’,

**11:11:01 AM**

state: ‘87733dcfee292f5181e9bcd269e9f5bf’,

**11:11:01 AM**

Session data: {

**11:11:01 AM**

Session ID: nYop4E0pZPa9eiNoYRRY5hIl8jz1Vi3U

**11:11:01 AM**

========== IDS LOGIN SESSION DEBUG ==========

**11:11:01 AM**

at async file:///home/api/build/sd-services/ids.js:107:22

**11:11:01 AM**

at async ids.sd\_pHve0ZPaAyWTAxdi (file:///home/api/build/sd-services/ids.js:355:18)

**11:11:01 AM**

at process.callbackTrampoline (node:internal/async\_hooks:130:17)

**11:11:01 AM**

at process.processImmediate (node:internal/timers:454:9)

**11:11:01 AM**

at runNextTicks (node:internal/process/task\_queues:64:3)

**11:11:01 AM**

at processTicksAndRejections (node:internal/process/task\_queues:95:5)

**11:11:01 AM**

at ids.sd\_i2u5MMtHPw4W5BeQ (file:///home/api/build/sd-services/ids.js:370:29)

**11:11:01 AM**

at ids.sd\_ctYfKQt9V0tX2Z49 (file:///home/api/build/sd-services/ids.js:383:52)

**11:11:01 AM**

TypeError: Cannot read properties of undefined (reading ‘nonce’)

**11:11:01 AM**

========================================

**11:11:01 AM**

Session data: undefined

**11:11:01 AM**

Session data exists: false

**11:11:01 AM**

Session ID: HuNvTEZEuZS3tfKo70xHNUTprjmlYwLz

**11:11:01 AM**

Session exists: true

**11:11:01 AM**

URL: [https://motor-ui.neutrinos-apps.com/api/login/cb?code=yu6KH\_-iFu8GDNGJ5h8lQWbxqSWf7foAPHRYwWMBwHH&state=811e28b7eb5c3f0d3c98ec33407fc3dc](https://motor-ui.neutrinos-apps.com/api/login/cb?code=yu6KH_-iFu8GDNGJ5h8lQWbxqSWf7foAPHRYwWMBwHH&state=811e28b7eb5c3f0d3c98ec33407fc3dc)

**11:11:01 AM**

========== IDS CALLBACK DEBUG ==========

**11:11:04 AM**

============================================

**11:11:04 AM**

Nonce: 2c6382de5e983fad6a78c240e58cf2c0

**11:11:04 AM**

State: f3e64d00f3931178110c8ec87b3c5ae9

**11:11:04 AM**

}

**11:11:04 AM**

redirectTo: undefined

**11:11:04 AM**

isMobile: undefined,

**11:11:04 AM**

nonce: ‘2c6382de5e983fad6a78c240e58cf2c0’,

**11:11:04 AM**

state: ‘f3e64d00f3931178110c8ec87b3c5ae9’,

**11:11:04 AM**

Session data: {

**11:11:04 AM**

Session ID: nYop4E0pZPa9eiNoYRRY5hIl8jz1Vi3U

**11:11:04 AM**

========== IDS LOGIN SESSION DEBUG ==========

**11:11:04 AM**

at async file:///home/api/build/sd-services/ids.js:107:22

**11:11:04 AM**

at async ids.sd\_pHve0ZPaAyWTAxdi (file:///home/api/build/sd-services/ids.js:355:18)

**11:11:04 AM**

at process.callbackTrampoline (node:internal/async\_hooks:130:17)

**11:11:04 AM**

at process.processImmediate (node:internal/timers:454:9)

**11:11:04 AM**

at runNextTicks (node:internal/process/task\_queues:64:3)

**11:11:04 AM**

at processTicksAndRejections (node:internal/process/task\_queues:95:5)

**11:11:04 AM**

at ids.sd\_i2u5MMtHPw4W5BeQ (file:///home/api/build/sd-services/ids.js:370:29)

**11:11:04 AM**

at ids.sd\_ctYfKQt9V0tX2Z49 (file:///home/api/build/sd-services/ids.js:383:52)

**11:11:04 AM**

TypeError: Cannot read properties of undefined (reading ‘nonce’)

**11:11:04 AM**

========================================

**11:11:04 AM**

Session data: undefined

**11:11:04 AM**

Session data exists: false

**11:11:04 AM**

Session ID: 9b49wYNKgGD-chH0n1-dSTJdhWQF3Y2L

**11:11:04 AM**

Session exists: true

**11:11:04 AM**

URL: [https://motor-ui.neutrinos-apps.com/api/login/cb?code=49lz4G-rfhxlEMsmfRo1Mq9fpKUbAe9NpGnYTf9DcMs&state=87733dcfee292f5181e9bcd269e9f5bf](https://motor-ui.neutrinos-apps.com/api/login/cb?code=49lz4G-rfhxlEMsmfRo1Mq9fpKUbAe9NpGnYTf9DcMs&state=87733dcfee292f5181e9bcd269e9f5bf)

**11:11:04 AM**

========== IDS CALLBACK DEBUG ==========

**11:11:07 AM**

============================================

**11:11:07 AM**

Nonce: f52976f47a94aab4a0329ea2da1071c3

**11:11:07 AM**

State: af41c8c4bff84c7dfe2ffb307752be5e

**11:11:07 AM**

}

**11:11:07 AM**

redirectTo: undefined

**11:11:07 AM**

isMobile: undefined,

**11:11:07 AM**

nonce: ‘f52976f47a94aab4a0329ea2da1071c3’,

**11:11:07 AM**

state: ‘af41c8c4bff84c7dfe2ffb307752be5e’,

**11:11:07 AM**

Session data: {

**11:11:07 AM**

Session ID: nYop4E0pZPa9eiNoYRRY5hIl8jz1Vi3U

**11:11:07 AM**

========== IDS LOGIN SESSION DEBUG ==========

**11:11:07 AM**

at async file:///home/api/build/sd-services/ids.js:107:22

**11:11:07 AM**

at async ids.sd\_pHve0ZPaAyWTAxdi (file:///home/api/build/sd-services/ids.js:355:18)

**11:11:07 AM**

at process.callbackTrampoline (node:internal/async\_hooks:130:17)

**11:11:07 AM**

at process.processImmediate (node:internal/timers:454:9)

**11:11:07 AM**

at runNextTicks (node:internal/process/task\_queues:64:3)

**11:11:07 AM**

at processTicksAndRejections (node:internal/process/task\_queues:95:5)

**11:11:07 AM**

at ids.sd\_i2u5MMtHPw4W5BeQ (file:///home/api/build/sd-services/ids.js:370:29)

**11:11:07 AM**

at ids.sd\_ctYfKQt9V0tX2Z49 (file:///home/api/build/sd-services/ids.js:383:52)

**11:11:07 AM**

TypeError: Cannot read properties of undefined (reading ‘nonce’)

**11:11:07 AM**

========================================

**11:11:07 AM**

Session data: undefined

**11:11:07 AM**

Session data exists: false

**11:11:07 AM**

Session ID: sbbNKHfua1FAHylAQbYuzzUsaf6jmnOf

**11:11:07 AM**

Session exists: true

**11:11:07 AM**

URL: [https://motor-ui.neutrinos-apps.com/api/login/cb?code=tAl2RUO0Lnm7Rm8PSQBEHFD3vDmnKxQsuQFywwqQoox&state=f3e64d00f3931178110c8ec87b3c5ae9](https://motor-ui.neutrinos-apps.com/api/login/cb?code=tAl2RUO0Lnm7Rm8PSQBEHFD3vDmnKxQsuQFywwqQoox&state=f3e64d00f3931178110c8ec87b3c5ae9)

**11:11:07 AM**

========== IDS CALLBACK DEBUG ==========

**11:11:10 AM**

at async file:///home/api/build/sd-services/ids.js:107:22

**11:11:10 AM**

at async ids.sd\_pHve0ZPaAyWTAxdi (file:///home/api/build/sd-services/ids.js:355:18)

**11:11:10 AM**

at process.callbackTrampoline (node:internal/async\_hooks:130:17)

**11:11:10 AM**

at process.processImmediate (node:internal/timers:454:9)

**11:11:10 AM**

at runNextTicks (node:internal/process/task\_queues:64:3)

**11:11:10 AM**

at processTicksAndRejections (node:internal/process/task\_queues:95:5)

**11:11:10 AM**

at ids.sd\_i2u5MMtHPw4W5BeQ (file:///home/api/build/sd-services/ids.js:370:29)

**11:11:10 AM**

at ids.sd\_ctYfKQt9V0tX2Z49 (file:///home/api/build/sd-services/ids.js:383:52)

**11:11:10 AM**

TypeError: Cannot read properties of undefined (reading ‘nonce’)

**11:11:10 AM**

========================================

**11:11:10 AM**

Session data: undefined

**11:11:10 AM**

Session data exists: false

**11:11:10 AM**

Session ID: EnwAxQ-G2vRrW8HoxwIMZaUutC2GNVRz

**11:11:10 AM**

Session exists: true

**11:11:10 AM**

URL: [https://motor-ui.neutrinos-apps.com/api/login/cb?code=uMvLw4lmx9YlKNBJvKE8T6O1OiWszronMh72aNHHOTz&state=af41c8c4bff84c7dfe2ffb307752be5e](https://motor-ui.neutrinos-apps.com/api/login/cb?code=uMvLw4lmx9YlKNBJvKE8T6O1OiWszronMh72aNHHOTz&state=af41c8c4bff84c7dfe2ffb307752be5e)

**11:11:10 AM**

========== IDS CALLBACK DEBUG ==========

**11:11:11 AM**

========================================

**11:11:11 AM**

}

**11:11:11 AM**

nonce: ‘f52976f47a94aab4a0329ea2da1071c3’

**11:11:11 AM**

state: ‘af41c8c4bff84c7dfe2ffb307752be5e’,

**11:11:11 AM**

Session data: {

**11:11:11 AM**

Session data exists: true

**11:11:11 AM**

Session ID: nYop4E0pZPa9eiNoYRRY5hIl8jz1Vi3U

**11:11:11 AM**

Session exists: true

**11:11:11 AM**

URL: [https://motor-ui.neutrinos-apps.com/api/login/cb?code=uMvLw4lmx9YlKNBJvKE8T6O1OiWszronMh72aNHHOTz&state=af41c8c4bff84c7dfe2ffb307752be5e](https://motor-ui.neutrinos-apps.com/api/login/cb?code=uMvLw4lmx9YlKNBJvKE8T6O1OiWszronMh72aNHHOTz&state=af41c8c4bff84c7dfe2ffb307752be5e)

**11:11:11 AM**

========== IDS CALLBACK DEBUG ==========

could you please verify:

1. Whether the production `clientId` and `secret` are correct.

2. Whether the configured `issuerURL` is correct for the standalone production IDS.

3. Whether the production login/logout callback URLs are correctly registered.

4. Whether any additional IDS configuration is required for production.

5. Whether there are any reverse-proxy, HTTPS, host, or redirect-related configurations required.

6. Whether the production backend is able to communicate with the standalone IDS instance.

 ![image](https://community.neutrinos.com/uploads/default/original/2X/5/5872ef942654e7c341a55d7ad21f187a6550ecac.png)
