help me with /user backend! (lemmy api v3. sorry if i cross-post ut in wrong community)

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() )

6 points · 4 comments · view on lemmy.world

4 Comments

ptz@dubvee.org · 3 pts · 1y (2 replies)

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}`);
    }
}
okelote360@lemmy.world · 2 pts · 1y

thanks! it works!

okelote360@lemmy.world · 0 pts · 1y

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

flamingos@feddit.uk · 1 pts · 1y

/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.