# Multi users on dashboard

**URL:** <https://discourse.nodered.org/t/multi-users-on-dashboard/86811>\
**Category:** Dashboard\
**Created:** [27 March 2024 14:53 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811 "2024-03-27T14:53:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Placido](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/placido/32/89674_2.png) [@Placido](https://discourse.nodered.org/u/Placido)\
**Post date:** [27 March 2024 14:53 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/1 "2024-03-27T14:53:12Z")

</div>

Is it possible to use the node-red dashboard on 2 different computers, where one session does not disturb the other?

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [27 March 2024 15:56 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/2 "2024-03-27T15:56:25Z")

</div>

To some extent yes. make sure you send the socket id, this works for some nodes not all. Use a debug node set to complete message object to see the socket id.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [27 March 2024 17:58 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/3 "2024-03-27T17:58:57Z")

</div>

Just remember two things about Dashboard 1:

- It is a single-page app. Every UI node delivers everything structural to every client instance even though you might not be able to see it on-screen at a particular time. I don't believe any of that pays attention to the socket id.
- The socket id is not very stable. It should not be assumed that it is, in any way, a client id. It will change if the page is reloaded and it will change if anything temporarily breaks the [Socket.IO](http://Socket.IO) websocket connection (for example if your PC or browser tab goes to sleep or possibly even if your laptop moves from a wired to wireless connection).

So you should not rely on the socket id for any kind of security or privacy.

Dashboard 2 has the ability to create multiple pages which might help a little depending on what you are trying to achieve.

If you want more control and/or a more comprehensive client id model and/or physically separated pages, you will need to look at UIBUILDER.

---

<div class="post-metadata">

**Author:** ![Placido](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/placido/32/89674_2.png) [@Placido](https://discourse.nodered.org/u/Placido)\
**Post date:** [3 April 2024 16:20 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/4 "2024-04-03T16:20:50Z")

</div>

Thanks,  
In the UIBUIDER I can have multiples diferrents sessions ?

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [3 April 2024 16:30 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/5 "2024-04-03T16:30:46Z")

</div>

You still have to code them up. But UIBUILDER provides the tools to let you do so.

- It allows Node-RED wide middleware for both ExpressJS and [Socket.IO](http://Socket.IO)
- It allows instace-level (e.g. each uibuilder node) middleware capabilities
- It incorporates more stable `clientId` , `tabId` and page name identifiers.

The clientId is created when any page of a specific uibuilder node is first accessed. it is stored as a session cookie (lasts until the browser is closed) and replayed with all messages back to Node-RED. If you include it when sending to your uibuilder node, only the client browser tabs open to that node's URL will recieve the message.

This is not full session management of course, which would include session timeouts, authentication and possible authorisation. But it is one of the building blocks. You could, for example, include it in a JWT or some kind of session management server processing.

---

<div class="post-metadata">

**Author:** ![joepavitt](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/joepavitt/32/59722_2.png) [@joepavitt](https://discourse.nodered.org/u/joepavitt)\
**Post date:** [3 April 2024 17:55 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/6 "2024-04-03T17:55:26Z")

</div>

For Node-RED Dashboard 2.0:

By default we follow the same pattern as Dashboard 1.0, whereby `ui-control` and `ui-notification` are constrainable with the socketid (available in `msg._client.socketId`

If you run Dashboard 2.0 on [FlowFuse](https://flowfuse.com) though, then the Team and Enterprise tiers here offer multi-user authentication and constraints

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [17 April 2024 17:55 UTC](https://discourse.nodered.org/t/multi-users-on-dashboard/86811/7 "2024-04-17T17:55:47Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
