Skip to content
Snippets Groups Projects
Commit a2215056 authored by epson220's avatar epson220
Browse files

passport use fail....

parent 9126155d
Branches
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ var passport = require("passport"); ...@@ -7,6 +7,7 @@ var passport = require("passport");
var flash = require("connect-flash"); var flash = require("connect-flash");
var expressSession = require("express-session"); var expressSession = require("express-session");
var bodyParser = require("body-parser"); var bodyParser = require("body-parser");
const cors = require("cors");
const mongoose = require("mongoose"); const mongoose = require("mongoose");
const mongooseAutoInc = require("mongoose-auto-increment"); const mongooseAutoInc = require("mongoose-auto-increment");
...@@ -38,16 +39,18 @@ app.use( ...@@ -38,16 +39,18 @@ app.use(
secret: "me key", secret: "me key",
resave: true, resave: true,
saveUninitialized: true, saveUninitialized: true,
cookie: { maxAge: 30000, secure: false, httpOnly: false },
}) })
); );
app.use(cors({ origin: "http://localhost:3000", credentials: true }));
app.use(express.static(path.join(__dirname, "public"))); app.use(express.static(path.join(__dirname, "public")));
app.use(passport.initialize()); app.use(passport.initialize());
app.use(passport.session()); app.use(passport.session());
app.use(flash()); app.use(flash());
var router = express.Router();
var UserModel = require("./models/user"); var UserModel = require("./models/user");
const { POINT_CONVERSION_COMPRESSED } = require("constants");
const { doesNotMatch } = require("assert");
let LocalStrategy = require("passport-local").Strategy; let LocalStrategy = require("passport-local").Strategy;
...@@ -91,9 +94,9 @@ passport.use( ...@@ -91,9 +94,9 @@ passport.use(
passwordField: "password", passwordField: "password",
passReqToCallback: true, passReqToCallback: true,
}, },
async function (req, email, password, done) { function (req, email, password, done) {
console.log("local-signup 실행됨."); console.log("local-signup 실행됨.");
var paramName = req.body.name || req.query.name; var paramName = req.body.nicname || req.query.nicname;
console.log( console.log(
"passport의 local-signup 호출됨 : " + "passport의 local-signup 호출됨 : " +
email + email +
...@@ -102,31 +105,36 @@ passport.use( ...@@ -102,31 +105,36 @@ passport.use(
", " + ", " +
paramName paramName
); );
try { UserModel.findOne({ email: email }, function (err, user) {
let u = await UserModel.findOne({ email: email }); if (err) {
if (u) { return done(err);
}
if (user) {
console.log("기존에 계정이 있음."); console.log("기존에 계정이 있음.");
return done( return done(
null, ull,
false, false,
req.flash("signupMessage", "계정이 이미 있습니다.") req.flash("signupMessage", "계정이 이미 있습니다.")
); );
} else { } else {
let user = new UserModel({ var user = new UserModel({
email: email, email: email,
password: password, password: password,
name: paramName, name: paramName,
}); });
let saved = await user.save();
if (saved) { user.save(function (err) {
if (err)
return done(
null,
false,
req.flash("signupMessage", "사용자 정보 저장 시 에러발생")
);
console.log("사용자 데이터 추가함."); console.log("사용자 데이터 추가함.");
return done(null, user); return done(null, user);
});
} }
} });
} catch (err) {
console.log(err);
return done(err);
}
} }
) )
); );
...@@ -144,24 +152,31 @@ passport.deserializeUser(function (user, done) { ...@@ -144,24 +152,31 @@ passport.deserializeUser(function (user, done) {
done(null, user); done(null, user);
}); });
var router = express.Router();
router.post( router.post(
"/login", "/login",
passport.authenticate("local-login", { passport.authenticate("local-login", {
successRedirect: "http://localhost:3001/profile", successRedirect: "/profile",
failureRedirect: "http://localhost:3000/login", failureRedirect: "http://localhost:3000/login",
failureFlash: true, failureFlash: true,
}) })
); );
router.post( router.route("/signup").post(
"/signup",
passport.authenticate("local-signup", { passport.authenticate("local-signup", {
successRedirect: "http://localhost:3001/profile", successRedirect: "/profile",
failureRedirect: "http://localhost:3000/signup", failureRedirect: "http://localhost:3000/signup",
failureFlash: true, failureFlash: true,
}) })
); );
// router.route("/signup").post(function (req, res) {
// console.log(
// "signup " + req.body.username + req.body.password + req.body.nicname
// );
// });
router.get("/profile", function (req, res) { router.get("/profile", function (req, res) {
console.log("/profile 패스 요청됨."); console.log("/profile 패스 요청됨.");
console.log(req.user); console.log(req.user);
......
...@@ -207,6 +207,15 @@ ...@@ -207,6 +207,15 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
}, },
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
"object-assign": "^4",
"vary": "^1"
}
},
"css": { "css": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz",
...@@ -634,6 +643,11 @@ ...@@ -634,6 +643,11 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
}, },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"on-finished": { "on-finished": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"dependencies": { "dependencies": {
"connect-flash": "^0.1.1", "connect-flash": "^0.1.1",
"cookie-parser": "~1.4.4", "cookie-parser": "~1.4.4",
"cors": "^2.8.5",
"debug": "~2.6.9", "debug": "~2.6.9",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"express": "~4.16.1", "express": "~4.16.1",
......
...@@ -102,7 +102,7 @@ passport.deserializeUser(function (user, done) { ...@@ -102,7 +102,7 @@ passport.deserializeUser(function (user, done) {
router.post( router.post(
"/login", "/login",
passport.authenticate("local-login", { passport.authenticate("local-login", {
successRedirect: "http://localhost:3000/profile", successRedirect: "http://localhost:3001/profile",
failureRedirect: "http://localhost:3000/login", failureRedirect: "http://localhost:3000/login",
failureFlash: true, failureFlash: true,
}) })
...@@ -111,7 +111,7 @@ router.post( ...@@ -111,7 +111,7 @@ router.post(
router.post( router.post(
"/signup", "/signup",
passport.authenticate("local-signup", { passport.authenticate("local-signup", {
successRedirect: "http://localhost:3000/profile", successRedirect: "http://localhost:3001/profile",
failureRedirect: "http://localhost:3000/signup", failureRedirect: "http://localhost:3000/signup",
failureFlash: true, failureFlash: true,
}) })
......
[{"C:\\WYH\\frontend\\src\\reportWebVitals.js":"1","C:\\WYH\\frontend\\src\\App.js":"2","C:\\WYH\\frontend\\src\\index.js":"3","C:\\WYH\\frontend\\src\\Home.js":"4","C:\\WYH\\frontend\\src\\Signup.js":"5","C:\\WYH\\frontend\\src\\Login.js":"6","C:\\WYH\\frontend\\src\\Profile.js":"7"},{"size":362,"mtime":1606157613272,"results":"8","hashOfConfig":"9"},{"size":932,"mtime":1606312284464,"results":"10","hashOfConfig":"9"},{"size":544,"mtime":1606240034288,"results":"11","hashOfConfig":"9"},{"size":370,"mtime":1606296711314,"results":"12","hashOfConfig":"9"},{"size":1596,"mtime":1606325070152,"results":"13","hashOfConfig":"9"},{"size":1235,"mtime":1606326896774,"results":"14","hashOfConfig":"9"},{"size":1006,"mtime":1606324675418,"results":"15","hashOfConfig":"9"},{"filePath":"16","messages":"17","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"10w9ldj",{"filePath":"18","messages":"19","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"20","messages":"21","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"22","messages":"23","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"24"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"27","messages":"28","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\WYH\\frontend\\src\\reportWebVitals.js",[],"C:\\WYH\\frontend\\src\\App.js",["31"],"C:\\WYH\\frontend\\src\\index.js",[],"C:\\WYH\\frontend\\src\\Home.js",["32"],"import React from \"react\";\r\nimport { Route, Link } from \"react-router-dom\";\r\n\r\nconst Home = () => {\r\n return (\r\n <div>\r\n <h1>WYB홈페이지입니다.</h1>\r\n <button>\r\n <Link to=\"/login\">로그인</Link>\r\n </button>\r\n <button>\r\n <Link to=\"/signup\">회원가입</Link>\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Home;\r\n","C:\\WYH\\frontend\\src\\Signup.js",["33"],"C:\\WYH\\frontend\\src\\Login.js",["34"],"C:\\WYH\\frontend\\src\\Profile.js",[],{"ruleId":"35","severity":1,"message":"36","line":1,"column":17,"nodeType":"37","messageId":"38","endLine":1,"endColumn":26},{"ruleId":"35","severity":1,"message":"39","line":2,"column":10,"nodeType":"37","messageId":"38","endLine":2,"endColumn":15},{"ruleId":"35","severity":1,"message":"40","line":3,"column":10,"nodeType":"37","messageId":"38","endLine":3,"endColumn":14},{"ruleId":"35","severity":1,"message":"40","line":2,"column":10,"nodeType":"37","messageId":"38","endLine":2,"endColumn":14},"no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Route' is defined but never used.","'post' is defined but never used."] [{"C:\\WYH\\frontend\\src\\reportWebVitals.js":"1","C:\\WYH\\frontend\\src\\App.js":"2","C:\\WYH\\frontend\\src\\index.js":"3","C:\\WYH\\frontend\\src\\Home.js":"4","C:\\WYH\\frontend\\src\\Signup.js":"5","C:\\WYH\\frontend\\src\\Login.js":"6","C:\\WYH\\frontend\\src\\Profile.js":"7"},{"size":362,"mtime":1606157613272,"results":"8","hashOfConfig":"9"},{"size":932,"mtime":1606312284464,"results":"10","hashOfConfig":"9"},{"size":544,"mtime":1606240034288,"results":"11","hashOfConfig":"9"},{"size":370,"mtime":1606296711314,"results":"12","hashOfConfig":"9"},{"size":1596,"mtime":1606325070152,"results":"13","hashOfConfig":"9"},{"size":1235,"mtime":1606326896774,"results":"14","hashOfConfig":"9"},{"size":1175,"mtime":1606383587065,"results":"15","hashOfConfig":"9"},{"filePath":"16","messages":"17","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"10w9ldj",{"filePath":"18","messages":"19","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"20","messages":"21","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"22","messages":"23","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"24"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"27","messages":"28","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"29"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\WYH\\frontend\\src\\reportWebVitals.js",[],"C:\\WYH\\frontend\\src\\App.js",["32"],"C:\\WYH\\frontend\\src\\index.js",[],"C:\\WYH\\frontend\\src\\Home.js",["33"],"import React from \"react\";\r\nimport { Route, Link } from \"react-router-dom\";\r\n\r\nconst Home = () => {\r\n return (\r\n <div>\r\n <h1>WYB홈페이지입니다.</h1>\r\n <button>\r\n <Link to=\"/login\">로그인</Link>\r\n </button>\r\n <button>\r\n <Link to=\"/signup\">회원가입</Link>\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Home;\r\n","C:\\WYH\\frontend\\src\\Signup.js",["34"],"C:\\WYH\\frontend\\src\\Login.js",["35"],"import React, { useState } from \"react\";\r\nimport { post } from \"axios\";\r\n\r\nconst Login = () => {\r\n const [username, setUsername] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n\r\n const onChangeUsername = (e) => setUsername(e.target.value);\r\n const onChangePassword = (e) => setPassword(e.target.value);\r\n\r\n // const handleFormSubmit = () => {\r\n // const url = \"/login\";\r\n // let formData = new FormData();\r\n // formData.append(\"username\", username);\r\n // formData.append(\"password\", password);\r\n\r\n // let config = {\r\n // headers: {\r\n // \"content-type\": \"multipart/form-data\",\r\n // },\r\n // };\r\n\r\n // return post(url, formData, config);\r\n // };\r\n\r\n return (\r\n <form action=\"http://localhost:3001/login\" method=\"post\">\r\n <h1>로그인 화면</h1>\r\n 이메일:\r\n <input\r\n type=\"text\"\r\n name=\"username\"\r\n value={username}\r\n onChange={onChangeUsername}\r\n ></input>\r\n 비밀번호:\r\n <input\r\n type=\"password\"\r\n name=\"password\"\r\n value={password}\r\n onChange={onChangePassword}\r\n ></input>\r\n <button type=\"submit\">로그인</button>\r\n </form>\r\n );\r\n};\r\n\r\nexport default Login;\r\n","C:\\WYH\\frontend\\src\\Profile.js",[],{"ruleId":"36","severity":1,"message":"37","line":1,"column":17,"nodeType":"38","messageId":"39","endLine":1,"endColumn":26},{"ruleId":"36","severity":1,"message":"40","line":2,"column":10,"nodeType":"38","messageId":"39","endLine":2,"endColumn":15},{"ruleId":"36","severity":1,"message":"41","line":3,"column":10,"nodeType":"38","messageId":"39","endLine":3,"endColumn":14},{"ruleId":"36","severity":1,"message":"41","line":2,"column":10,"nodeType":"38","messageId":"39","endLine":2,"endColumn":14},"no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Route' is defined but never used.","'post' is defined but never used."]
\ No newline at end of file \ No newline at end of file
This diff is collapsed.
...@@ -7,6 +7,17 @@ ...@@ -7,6 +7,17 @@
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",
"axios": "^0.21.0", "axios": "^0.21.0",
"body-parser": "^1.19.0",
"connect-flash": "^0.1.1",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-session": "^1.17.1",
"http": "0.0.1-security",
"mongoose": "^5.10.16",
"passport": "^0.4.1",
"passport-local": "^1.0.0",
"path": "^0.12.7",
"react": "^17.0.1", "react": "^17.0.1",
"react-dom": "^17.0.1", "react-dom": "^17.0.1",
"react-router-dom": "^5.2.0", "react-router-dom": "^5.2.0",
......
//var createError = require("http-errors");
var http = require("http");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
//var logger = require("morgan");
var passport = require("passport");
var flash = require("connect-flash");
var expressSession = require("express-session");
var bodyParser = require("body-parser");
const cors = require("cors");
const mongoose = require("mongoose");
//const mongooseAutoInc = require("mongoose-auto-increment");
//const UserModel = require("./models/user");
//디비객체
var database;
//디비스키마객체
var UserSchema;
//디비모델객체
var UserModel;
function connectDB() {
//데이터베이스 연결 정보
var databaseUrl = "mongodb://localhost:27017/local";
console.log("데이터베이스 연결을 시도합니다.");
mongoose.Promise = global.Promise;
mongoose.connect(databaseUrl);
database = mongoose.connection;
database.on(
"error",
console.error.bind(console, "mongoose connection error")
);
database.on("open", function () {
console.log("데이터베이스에 연결되었습니다. : " + databaseUrl);
// UserSchema = mongoose.Schema({
// id: String,
// name: String,
// password: String
// });
UserSchema = mongoose.Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
name: { type: String },
created_at: { type: Date, default: Date.now },
deleted_at: { type: Date },
user_id: { type: Number, default: 0, unique: true },
});
UserSchema.static("findById", function (id, callback) {
return this.find({ id: id }, callback);
});
UserSchema.static("findAll", function (callback) {
return this.find({}, callback);
});
console.log("UserSchema정의함.");
UserModel = mongoose.model("users2", UserSchema);
console.log("UserModel 정의함.");
});
database.on("disconnected", function () {
console.log("연결이 끊어졌습니다. 5초 후 다시 연결합니다.");
setInterval(connectDB, 5000);
});
}
// mongoose.connect("mongodb://localhost:27017/local", {
// useFindAndModify: false,
// useNewUrlParser: true,
// useUnifiedTopology: true,
// });
//mongooseAutoInc.initialize(mongoose.connection);
//var indexRouter = require("./routes/index");
//var usersRouter = require("./routes/users");
// mongoose.connect("mongodb://localhost:27017/local", {
// useFindAndModify: false,
// useNewUrlParser: true,
// useUnifiedTopology: true,
// });
// mongooseAutoInc.initialize(mongoose.connection);
// UserSchema.plugin(mongooseAutoInc.plugin, "user");
// var UserModel = mongoose.model("user", UserSchema);
var app = express();
app.set("port", 3001);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
//app.use(cors());
app.use(
cors({
origin: "http://localhost:3000", // server의 url이 아닌, 요청하는 client의 url
credentials: true,
})
);
// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "jade");
//app.use(logger("dev"));
//app.use(express.json());
//app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(
expressSession({
secret: "me key",
resave: true,
saveUninitialized: true,
cookie: { maxAge: 30000, secure: false, httpOnly: false },
})
);
//app.use(cors({ origin: "http://localhost:3000", credentials: true }));
app.use(express.static(path.join(__dirname, "public")));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
let LocalStrategy = require("passport-local").Strategy;
passport.use(
"local-login",
new LocalStrategy(
{
usernameField: "email",
passwordField: "password",
passReqToCallback: true,
},
async function (req, email, password, done) {
console.log("passport의 local-login 호출됨." + email + ", " + password);
try {
let u = await UserModel.findOne({ email: email, password: password });
if (!u) {
console.log("이메일과 비밀번호가 일치하지 않습니다.");
return done(
null,
false,
req.flash("loginMessage", "이메일과 비밀번호를 다시 확인해 주세요.")
);
}
console.log("계정과 비밀번호가 일치함");
console.log(u);
return done(null, user);
} catch (err) {
console.log("로그인 인증과정에서 에러발생");
console.log(err);
return done(err);
}
}
)
);
passport.use(
"local-signup",
new LocalStrategy(
{
usernameField: "email",
passwordField: "password",
passReqToCallback: true,
},
function (req, email, password, done) {
console.log("local-signup 실행됨.");
var paramName = req.body.nicname || req.query.nicname;
console.log(
"passport의 local-signup 호출됨 : " +
email +
", " +
password +
", " +
paramName
);
UserModel.findOne({ email: email }, function (err, user) {
if (err) {
return done(err);
}
if (user) {
console.log("기존에 계정이 있음.");
return done(
ull,
false,
req.flash("signupMessage", "계정이 이미 있습니다.")
);
} else {
var user = new UserModel({
email: email,
password: password,
name: paramName,
});
user.save(function (err) {
if (err)
return done(
null,
false,
req.flash("signupMessage", "사용자 정보 저장 시 에러발생")
);
console.log("사용자 데이터 추가함.");
return done(null, user);
});
}
});
}
)
);
passport.serializeUser(function (user, done) {
console.log("serializeUser() 호출됨.");
console.dir(user);
done(null, user);
});
passport.deserializeUser(function (user, done) {
console.log("deserializeUser()호출됨.");
console.dir(user);
done(null, user);
});
var router = express.Router();
// router.post(
// "/login",
// passport.authenticate("local-login", {
// successRedirect: "/profile",
// failureRedirect: "http://localhost:3000/login",
// failureFlash: true,
// })
// );
// router.route("/signup").post(
// passport.authenticate("local-signup", {
// successRedirect: "/profile",
// failureRedirect: "http://localhost:3000/signup",
// failureFlash: true,
// })
// );
router.route("/signup").post(function (req, res, next) {
console.dir(req.body);
console.dir(req.user);
});
// router.route("/signup").post(function (req, res) {
// console.log(
// "signup " + req.body.username + req.body.password + req.body.nicname
// );
// });
router.get("/profile", function (req, res) {
console.log("/profile 패스 요청됨.");
console.log(req.user);
if (!req.user) {
console.log("사용자 인증이 안 된 상태임.");
res.redirect("/");
return;
}
console.log("사용자 인증된 상태임");
if (Array.isArray(req.user)) {
res.send(req.user[0]._doc);
} else {
res.send(req.user);
}
});
app.use("/", router);
//app.use("/", indexRouter);
//app.use("/", usersRouter);
http.createServer(app).listen(app.get("port"), function () {
console.log("익스프레스 서버를 시작했습니다. : " + app.get("port"));
connectDB();
});
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import axios from "axios"; import axios from "axios";
axios.defaults.withCredentials = true; // 기존에 해당 설정으로 cors 에러가 나게 한 부분
const Profile = () => { const Profile = () => {
const [user, setUser] = useState(""); const [user, setUser] = useState("");
...@@ -14,7 +15,12 @@ const Profile = () => { ...@@ -14,7 +15,12 @@ const Profile = () => {
fetchData(); fetchData();
}, []); }, []);
return <div>{user}</div>; return (
<>
<h1>프로필화면</h1>
<div>{user}</div>
</>
);
}; };
// const Profile = (login_info) => { // const Profile = (login_info) => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment