首页 > 解决方案 > 将 Auth0 信息发布到我的 Postgresql 数据库时出现问题

问题描述

我正在尝试使用登录后从 Auth0 用户收集的信息更新我自己的数据库。

我想要的只是 user.name 和 user.email。登录工作完美,我可以访问用户信息以显示个人资料页面,但我无法将相同的数据发送到我的数据库。

错误/问题;

Auth0 AuthenticationButton 文件;

import React, { useEffect } from 'react';
import LoginButton from './LoginButton';
import LogoutButton from './LogoutButton';
import { useAuth0 } from '@auth0/auth0-react';

const AuthenticationButton = () => {
  const { user, isAuthenticated } = useAuth0();

   useEffect(() => {
    register();
},[])

  const register = () => {
    if(isAuthenticated) {
      const { name, email } = user;
      fetch('/newlogin', {
          method: 'POST',
          body: { name, email }
        })
        .then(res => res.json())
      }}
      
  return isAuthenticated ? <LogoutButton /> : <LoginButton />;
};

export default AuthenticationButton;

服务器.js 文件;

const express = require('express');
const app = express(); 
app.use(express.urlencoded({extended: false}));
app.use(express.json());
const Pool = require('pg').Pool;
require('dotenv').config();
const listenPort = process.env.REACT_APP_LISTENPORT; 

//Connection to PostgreSQL Database
const pool = new Pool({
    user: process.env.REACT_APP_USER,
    host: process.env.REACT_APP_HOST,
    database: process.env.REACT_APP_DATABASE,
    password: process.env.REACT_APP_PASSWORD,
    dialect: process.env.REACT_APP_DIALECT,
    port: process.env.REACT_APP_DBPORT
});

//POST /customer route
app.post('/newlogin', (req, res, next) => {
    const name = req.body.name;
    const email = req.body.email;
    pool.query('INSERT INTO customer(name, email) VALUES($1, $2)', [name, email], (err, res) => {
        if(err) return next(err);
        console.log(res)
    })
});

标签: reactjsdatabasepostgresqlfetchauth0

解决方案


推荐阅读