-1

I'm trying to get the user signed-in information with google oauth. I already got credential after signed-in (access token), but how can I get user profile?

Here is my code:

export default function SignIn() {
    const responseMessage = async (response) => {
        const { credential } = response;
        const accessToken = credential;

        try {
            await axios
                .post("http://localhost:5000/api/auth/google", { accessToken })
                .then((response) => console.log(response))
                .catch((error) => console.log(error.response));
        } catch (error) {
            console.log("Error fetching user info:", error);
        }
    };
    const errorMessage = (error) => {
        console.log(error);
    };
  return (
    <>
      <Box sx={{ display: "flex", justifyContent: "center" }}>
                    <GoogleLogin onSuccess={responseMessage} onError={errorMessage} />
            </Box>
    </>
  );
}
const { default: axios } = require("axios");
const express = require("express");
const router = express.Router();

router.post("/auth/google", async (req, res) => {
    const { accessToken } = req.body;

    try {
        const response = await axios.get(
            `https://www.googleapis.com/oauth2/v3/userinfo?access_token=${accessToken}`
        );

        const userInfo = response.data;

        res.status(200).json(userInfo);
    } catch (error) {
        res.status(400).json({ error: `Error fetching user info: ${error}` });
    }
});

module.exports = router;

After I post sign-in with google it throws

error: "Error fetching user info: AxiosError: Request failed with status code 401"

0

Browse other questions tagged or ask your own question.