• Hi,

    So we're planning on switching from Discourse to NodeBB (currently sorting out a new set of forums ready for release). While NodeBB has been amazing so far, we've come into struggles with using a NodeBB account externally. In Discourse you can do http://example.com/session/current.json and get the current viewers user information. But with NodeBB we're unable to actually find a way of doing it.

    I've tried looking around the NodeBB GitHub but found nothing. I have also tried making a plugin for it, but can't get it to work that way either. So I'd love to know if there is already a way or if someone can help me out with my plugin:

    Any and all help is appreciated!

    Thank you 🙂

  • Anyone? 😞

  • Gamers Admin

    We could possibly add a /api/me page that returns some info about the current logged in user. What kind of info you need?

  • @baris Just a basic overview. Kinda like a JSON form of a users profile as if it was being viewed publicly. We do an AJAX request and get the information. Example from Discourse:

          "title":"Your friendly neighbourhood moderator",

    Thanks for your reply 🙂

  • Gamers Admin

    Alright since we already have this data when you go to /api/user/<userslug> we can just return the same info when you go to /me.

  • @baris That would be perfect!

  • Hi all,
    I am in stuck when trying to get current user via API.
    I call api from remote iframe, but all worked fine such as /api/users, api/uid/1, except /api/me always return “no Authoried”.
    Althought it returned correct data of current user if I called directly from the browser.
    Thanks for any help.

  • Global Moderator

    @navix what do you mean by "remote iframe"?

  • @PitaJ I think I have a similar problem with navix. I'm running nodebb forums in a server with this domain forum.myapp.com, and I have my main site in a cdn (as it's just React app) in a different domain myapp.com.

    All login is handled on the forum site. In my main app, I need to know whether a current user is logged into the forum. I'm calling the forum api: forum.myapp.com/api/me from the main app and I'm getting "401 Unauthorized".

    But going to forum.myapp.com/api/me directly from the browser returns the logged in user data.

    I'm assuming it doesn't work because of a cookie not being set in the main app - as they are in a different domain. So are there any other way I can get the logged in user from the forum api?

    Thank you!

  • Global Moderator

    @Jenine-Liwanag so first, are you calling it server side or client side? Second, have you set the Access-Control-Allow-Origin header in the NodeBB ACP to allow access from your other site.

    You're fighting with CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

  • @PitaJ I'm calling it on the client side, I'm using axios.get() to call the forum api. I have set the Access-Control-Allow-Origin to https://myapp.com - other api calls (ie. posts, tags) work just fine. Only when I call /api/me is when I get 401 Unauthorized. I tried calling /api/login but I get back an object that has loggedIn:false even tho a user is logged in the forums.

  • Hello @PitaJ,
    I want to check a user login or not from another website. I use Nodebb API /api/me and check it rsult from php curl.
    This link I followed:

    I don't know why it always return "not-authorized" if call /api/me although others work fine (such as /api/users, api/uid/1,...).
    Noted that, currently if I log in Nodebb, I will get current user with url <mydomain</api/me in another tab in the same Browser.

Suggested Topics

| |