my request.user is always AnonymousUser

Hi.

If your vue3 code is not served by the same domain as your django API (i.e. localhost:8000), you may be facing a cross domain issue.

If so, to ensure session cookie is sent in subsequent requests after login, you need to set withCredentials attribute to true in the request. E.g.

axios.post('http://localhost:8000/settings/getinfo/', { withCredentials: true })

You may also enforce this behaviour for every request by setting
axios.defaults.withCredentials

You’ll also have to correcty set CORS settings on django side (see Be logged in mutiple sites - #13 by antoinehumbert)

But, as stated by Ken, checking requests/responses headers from your browser should help in identifying the root cause of the problem