Получение данных модели пользователя в ответе drf-social-oauth2 после входа в систему

Итак, я использую drf-social-oauth2 для аутентификации и React во фронтенде,

const handleGoogleLogin = (response) => {
    setLoading(true);
    axios
      .post(`${apiBaseURL}/auth/convert-token`, {
        token: response.accessToken,
        backend: "google-oauth2",
        grant_type: "convert_token",
        client_id: drfClientId,
        client_secret: drfClientSecret,
      })
      .then((res) => {
        const { access_token, refresh_token } = res.data;
        const cookies = new Cookies();
        cookies.remove("google_access_token");
        cookies.remove("google_refresh_token");
        cookies.set("google_access_token", access_token, {path: "/", maxAge: 24*60*60});
        cookies.set("google_refresh_token", refresh_token, {path: "/", maxAge: 24*60*60});
        setLoading(false);
        console.log(res);
        console.log(res.data);
        // window.location.href = `${appBaseURL}/`;
      })
      .catch((err) => {
        setLoading(false);
        createErrorNotification();
      });
  };

Здесь вход в систему успешный и все работает нормально, однако ответ, который я получаю, просто

{access_token: 't3LqiUvz0x4HBWGDsSyLP7fsyKejJf', expires_in: 63583.018772, scope: 'read write', refresh_token: 'GEkGz8teGATlYY0pQ1zuntN8ODfFT4', token_type: 'Bearer'}

Что я могу сделать, чтобы в ответе была вся информация о пользователе, например, поля его модели? Нигде не смог найти ничего связанного с этим

Думаю, вам нужно сделать еще один вызов https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + token с маркером доступа, чтобы запросить информацию о пользователе.

Вы можете установить в настройках следующее, чтобы получать данные от google.

SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
    'https://www.googleapis.com/auth/userinfo.email',
    'https://www.googleapis.com/auth/userinfo.profile',
]

и это даст вам такие данные пользователя, как "email, first_name, last_name, usern_name"

Вернуться на верх