hello! im developing lemmy client (on html5). i tried to do login function but… when i try to fetch /v3/user backend with auth-token it give me error:

{
  "error": "no_id_given"
}

but why? what im doing wrong? if you want here is my source file on github ( function: getLoggined() )

  • Admiral Patrick
    link
    fedilink
    English
    3
    edit-2
    6 days ago

    To get the current logged-in user’s details, that’s actually retrieved from /api/v3/site for…reasons, I guess?

    Your function can remain the same, but change the api endpoint to /site Also, the user details will be in the my_user key from get site response.

    Is there a reason you’re not using the lemmy-js-client? That will take care of a lot of the low-level fetching for you (and has TypeDocs which help you to know what response / form data is needed).

    Your Original Function, Slightly Modified

     async function getLoggined() {
       try {
            const response = await fetch(`${api}/site`, {
                method: "GET",
                headers: {
                    "Content-Type": "application/json",
                    "Authorization": `Bearer ${lemmyToken}`
                }
            });
            alert(`Bearer ${lemmyToken}`);
            alert(await response.text());
            const data = await response.json();
            return data.my_user;
        } catch (error) {
            alert(`error while loading profile: ${error}`);
        }
    }
    
    • Igor360OP
      link
      26 days ago

      thanks! it works!

    • Igor360OP
      link
      06 days ago

      i didnt use lemmy-js-client because i dont know how to install it in github pages…

  • flamingos-cant
    link
    fedilink
    English
    16 days ago

    /api/v3/user is for fetching info about any user, it requires either a person_id or username to be given as a URL param to work, e.g. https://feddit.uk/api/v3/user?person_id=28426 will get my profile. There currently isn’t a way to get just the person_view from the JWT, though API v4 will have an /account endpoint that you’ll be able to GET with the auth header. Most apps GET the /site endpoint and use my_user returned from that.