Skip to content
Snippets Groups Projects
Commit c159f90f authored by Hyun Woo Jeong's avatar Hyun Woo Jeong
Browse files

now react gives token payload to express!

parent 070ea1f0
Branches
No related tags found
No related merge requests found
Showing
with 33 additions and 16 deletions
...@@ -6,24 +6,27 @@ import process from 'process' ...@@ -6,24 +6,27 @@ import process from 'process'
const app = express(); const app = express();
const PORT = 8080; const PORT = 8080;
console.log(path.join(process.cwd(), '../frontend/build'))
app.use(express.static(path.join(process.cwd(), '../frontend/build'))) app.use(express.static(path.join(process.cwd(), '../frontend/build')));
app.use(express.json()); app.use(express.json());
app.use(express.urlencoded({ extended: false })); app.use(express.urlencoded({ extended: false }));
app.use(cors()); app.use(cors());
app.get('/', function (req, res) {
console.log(path.join(process.cwd(), '../frontend/build/index.html'))
res.sendFile(path.join(process.cwd(), '../frontend/build/index.html'));
});
app.listen(PORT, () => { app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`); console.log(`Listening on port ${PORT}`);
}); // 서버 실행 }); // 서버 실행
/*
app.get('/', function (req, res) {
res.sendFile(path.join(process.cwd(), '../frontend/build/index.html'));
});
*/
app.post('/temp', (req, res) => {
const text = req.body;
console.log(text);
});
......
{ {
"files": { "files": {
"main.css": "/static/css/main.de1ec512.css", "main.css": "/static/css/main.de1ec512.css",
"main.js": "/static/js/main.a8eb8e4b.js", "main.js": "/static/js/main.2f3c2dd5.js",
"index.html": "/index.html", "index.html": "/index.html",
"main.de1ec512.css.map": "/static/css/main.de1ec512.css.map", "main.de1ec512.css.map": "/static/css/main.de1ec512.css.map",
"main.a8eb8e4b.js.map": "/static/js/main.a8eb8e4b.js.map" "main.2f3c2dd5.js.map": "/static/js/main.2f3c2dd5.js.map"
}, },
"entrypoints": [ "entrypoints": [
"static/css/main.de1ec512.css", "static/css/main.de1ec512.css",
"static/js/main.a8eb8e4b.js" "static/js/main.2f3c2dd5.js"
] ]
} }
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.a8eb8e4b.js"></script><link href="/static/css/main.de1ec512.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.2f3c2dd5.js"></script><link href="/static/css/main.de1ec512.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
\ No newline at end of file \ No newline at end of file
Source diff could not be displayed: it is too large. Options to address this: view the blob.
[{"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\index.js":"1","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\App.js":"2","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\Main.js":"3","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\GoogleLoginButton.js":"4","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\index.js":"5","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\App.js":"6","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\GoogleLoginButton.js":"7"},{"size":539,"mtime":1699961336165,"results":"8","hashOfConfig":"9"},{"size":147,"mtime":1699962150722,"results":"10","hashOfConfig":"9"},{"size":94,"mtime":1699958523568,"results":"11","hashOfConfig":"9"},{"size":904,"mtime":1699962468727,"results":"12","hashOfConfig":"9"},{"size":539,"mtime":1699961336165,"results":"13","hashOfConfig":"14"},{"size":147,"mtime":1699962150722,"results":"15","hashOfConfig":"14"},{"size":904,"mtime":1699962468727,"results":"16","hashOfConfig":"14"},{"filePath":"17","messages":"18","suppressedMessages":"19","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"20"},"1vnyped",{"filePath":"21","messages":"22","suppressedMessages":"23","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"20"},{"filePath":"24","messages":"25","suppressedMessages":"26","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"28","messages":"29","suppressedMessages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"31","messages":"32","suppressedMessages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"hw0tuu",{"filePath":"34","messages":"35","suppressedMessages":"36","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","suppressedMessages":"39","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"40"},"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\index.js",[],[],["41","42","43","44","45","46"],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\App.js",[],[],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\Main.js",[],[],["47","48","49","50","51","52"],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\GoogleLoginButton.js",["53"],[],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\index.js",[],[],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\App.js",[],[],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\GoogleLoginButton.js",["54"],[],"import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\t\t\t\t\t\ttoken = res.credential;\n\t\t\t\t\t\tlet payload = token.substring(token.indexOf('.')+1,token.lastIndexOf('.'));\n console.log(base64.decode(payload));\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\n\nexport default GoogleLoginButton",{"ruleId":"55","replacedBy":"56"},{"ruleId":"57","replacedBy":"58"},{"ruleId":"59","replacedBy":"60"},{"ruleId":"61","replacedBy":"62"},{"ruleId":"63","replacedBy":"64"},{"ruleId":"65","replacedBy":"66"},{"ruleId":"55","replacedBy":"67"},{"ruleId":"57","replacedBy":"68"},{"ruleId":"59","replacedBy":"69"},{"ruleId":"61","replacedBy":"70"},{"ruleId":"63","replacedBy":"71"},{"ruleId":"65","replacedBy":"72"},{"ruleId":"73","severity":1,"message":"74","line":8,"column":6,"nodeType":"75","messageId":"76","endLine":8,"endColumn":13},{"ruleId":"73","severity":1,"message":"74","line":8,"column":6,"nodeType":"75","messageId":"76","endLine":8,"endColumn":13},"dot-location",[],"new-parens",[],"no-mixed-operators",[],"no-new-object",["77"],"no-whitespace-before-property",[],"rest-spread-spacing",[],[],[],[],["77"],[],[],"no-unused-vars","'payload' is assigned a value but never used.","Identifier","unusedVar","no-object-constructor"] [{"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\index.js":"1","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\App.js":"2","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\Main.js":"3","C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\GoogleLoginButton.js":"4","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\index.js":"5","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\App.js":"6","C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\GoogleLoginButton.js":"7"},{"size":539,"mtime":1699961336165,"results":"8","hashOfConfig":"9"},{"size":147,"mtime":1699962150722,"results":"10","hashOfConfig":"9"},{"size":94,"mtime":1699958523568,"results":"11","hashOfConfig":"9"},{"size":904,"mtime":1699962468727,"results":"12","hashOfConfig":"9"},{"size":424,"mtime":1699980897455,"results":"13","hashOfConfig":"14"},{"size":147,"mtime":1699962150722,"results":"15","hashOfConfig":"14"},{"size":1411,"mtime":1699986929555,"results":"16","hashOfConfig":"14"},{"filePath":"17","messages":"18","suppressedMessages":"19","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"20"},"1vnyped",{"filePath":"21","messages":"22","suppressedMessages":"23","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"20"},{"filePath":"24","messages":"25","suppressedMessages":"26","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"28","messages":"29","suppressedMessages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"31","messages":"32","suppressedMessages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"34"},"hw0tuu",{"filePath":"35","messages":"36","suppressedMessages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"34"},{"filePath":"38","messages":"39","suppressedMessages":"40","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\index.js",[],[],["41","42","43","44","45","46"],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\App.js",[],[],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\Main.js",[],[],["47","48","49","50","51","52"],"C:\\Users\\grass\\Desktop\\study2\\frontend\\src\\GoogleLoginButton.js",["53"],[],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\index.js",[],[],["54","55","56","57","58","59"],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\App.js",[],[],"C:\\Users\\grass\\Desktop\\sicdorak\\frontend\\src\\GoogleLoginButton.js",["60","61","62"],[],{"ruleId":"63","replacedBy":"64"},{"ruleId":"65","replacedBy":"66"},{"ruleId":"67","replacedBy":"68"},{"ruleId":"69","replacedBy":"70"},{"ruleId":"71","replacedBy":"72"},{"ruleId":"73","replacedBy":"74"},{"ruleId":"63","replacedBy":"75"},{"ruleId":"65","replacedBy":"76"},{"ruleId":"67","replacedBy":"77"},{"ruleId":"69","replacedBy":"78"},{"ruleId":"71","replacedBy":"79"},{"ruleId":"73","replacedBy":"80"},{"ruleId":"81","severity":1,"message":"82","line":8,"column":6,"nodeType":"83","messageId":"84","endLine":8,"endColumn":13},{"ruleId":"63","replacedBy":"85"},{"ruleId":"65","replacedBy":"86"},{"ruleId":"67","replacedBy":"87"},{"ruleId":"69","replacedBy":"88"},{"ruleId":"71","replacedBy":"89"},{"ruleId":"73","replacedBy":"90"},{"ruleId":"81","severity":1,"message":"91","line":8,"column":6,"nodeType":"83","messageId":"84","endLine":8,"endColumn":11},{"ruleId":"81","severity":1,"message":"82","line":9,"column":6,"nodeType":"83","messageId":"84","endLine":9,"endColumn":13},{"ruleId":"81","severity":1,"message":"92","line":41,"column":11,"nodeType":"83","messageId":"84","endLine":41,"endColumn":19},"dot-location",[],"new-parens",[],"no-mixed-operators",[],"no-new-object",["93"],"no-whitespace-before-property",[],"rest-spread-spacing",[],[],[],[],["93"],[],[],"no-unused-vars","'payload' is assigned a value but never used.","Identifier","unusedVar",[],[],[],["93"],[],[],"'token' is assigned a value but never used.","'response' is assigned a value but never used.","no-object-constructor"]
\ No newline at end of file \ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\grass\\\\Desktop\\\\sicdorak\\\\frontend\\\\src\\\\GoogleLoginButton.js\";\nimport { GoogleLogin } from \"@react-oauth/google\";\nimport { GoogleOAuthProvider } from \"@react-oauth/google\";\nimport base64 from 'base-64';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';\n let token = null;\n let payload = null;\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(GoogleOAuthProvider, {\n clientId: clientId,\n children: /*#__PURE__*/_jsxDEV(GoogleLogin, {\n onSuccess: res => {\n /* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n aaaa.bbbb.cccc\n \n [base64]aaaa: 헤더\n [base64]bbbb: 페이로드 (실질적인 데이터)\n [RS256]cccc: 서명\n \n RS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n */\n let datas = res.credential.split('.');\n /*\n for (const element of datas) {\n \ttry {\n \t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n \t}\n \tcatch (err) {\n \t\tconsole.log(element);\t\n \t}\n }\n */\n console.log(base64.decode(datas[1]));\n console.log(typeof base64.decode(datas[1]));\n console.log(typeof JSON.stringify(base64.decode(datas[1])));\n commuTest(base64.decode(datas[1]));\n },\n onFailure: err => {\n console.log(\"Login Failed\");\n console.log(err);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, this)\n }, void 0, false);\n};\n_c = GoogleLoginButton;\nfunction commuTest(bodyContent) {\n fetch('http://localhost:8080/temp', {\n //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: JSON.stringify(bodyContent)\n });\n // .then(response => response.json())\n // .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton;\nvar _c;\n$RefreshReg$(_c, \"GoogleLoginButton\");","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsxDEV","_jsxDEV","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","datas","credential","split","console","log","decode","JSON","stringify","commuTest","onFailure","err","fileName","_jsxFileName","lineNumber","columnNumber","_c","bodyContent","fetch","method","body","$RefreshReg$"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\n\t\t\t\t\t\t/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tconsole.log(base64.decode(datas[1]));\t\n\t\t\t\t\t\tconsole.log(typeof base64.decode(datas[1]));\t\n\t\t\t\t\t\tconsole.log(typeof JSON.stringify(base64.decode(datas[1])));\t\n\t\t\t\t\t\tcommuTest(base64.decode(datas[1]));\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\nfunction commuTest(bodyContent) {\n fetch('http://localhost:8080/temp', { //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: JSON.stringify(bodyContent)\n })\n// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton"],"mappings":";AAAA,SAAQA,WAAW,QAAO,qBAAqB;AAC/C,SAAQC,mBAAmB,QAAO,qBAAqB;AACvD,OAAOC,MAAM,MAAM,SAAS;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE7B,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAC5B,MAAMC,QAAQ,GAAG,0EAA0E;EAC9F,IAAIC,KAAK,GAAG,IAAI;EAChB,IAAIC,OAAO,GAAG,IAAI;EACf,oBACIN,OAAA,CAAAE,SAAA;IAAAK,QAAA,eACIP,OAAA,CAACH,mBAAmB;MAACO,QAAQ,EAAEA,QAAS;MAAAG,QAAA,eACpCP,OAAA,CAACJ,WAAW;QACRY,SAAS,EAAGC,GAAG,IAAK;UAElC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;UACM,IAAIC,KAAK,GAAGD,GAAG,CAACE,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC;UACrC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;UACMC,OAAO,CAACC,GAAG,CAAChB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;UACpCG,OAAO,CAACC,GAAG,CAAC,OAAOhB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;UAC3CG,OAAO,CAACC,GAAG,CAAC,OAAOE,IAAI,CAACC,SAAS,CAACnB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;UAC3DQ,SAAS,CAACpB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,CAAE;QACFS,SAAS,EAAGC,GAAG,IAAK;UAClCP,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC;UACTD,OAAO,CAACC,GAAG,CAACM,GAAG,CAAC;QACpB;MAAE;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACe;EAAC,gBACxB,CAAC;AAEX,CAAC;AAACC,EAAA,GA3CItB,iBAAiB;AA6CvB,SAASe,SAASA,CAACQ,WAAW,EAAE;EAC5BC,KAAK,CAAC,4BAA4B,EAAE;IAAE;IACpCC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEb,IAAI,CAACC,SAAS,CAACS,WAAW;EAClC,CAAC,CAAC;EACN;EACA;AACA;;AAEA,eAAevB,iBAAiB;AAAA,IAAAsB,EAAA;AAAAK,YAAA,CAAAL,EAAA"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\grass\\\\Desktop\\\\sicdorak\\\\frontend\\\\src\\\\GoogleLoginButton.js\";\nimport { GoogleLogin } from \"@react-oauth/google\";\nimport { GoogleOAuthProvider } from \"@react-oauth/google\";\nimport base64 from 'base-64';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';\n let token = null;\n let payload = null;\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(GoogleOAuthProvider, {\n clientId: clientId,\n children: /*#__PURE__*/_jsxDEV(GoogleLogin, {\n onSuccess: res => {\n let datas = res.credential.split('.');\n for (const element of datas) {\n console.log(element);\n console.log(base64.decode(element));\n }\n },\n onFailure: err => {\n console.log(\"Login Failed\");\n console.log(err);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, this)\n }, void 0, false);\n};\n_c = GoogleLoginButton;\nexport default GoogleLoginButton;\nvar _c;\n$RefreshReg$(_c, \"GoogleLoginButton\");","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsxDEV","_jsxDEV","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","datas","credential","split","element","console","log","decode","onFailure","err","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\tconsole.log(element);\n\t\t\t\t\t\t\tconsole.log(base64.decode(element));\n\t\t\t\t\t\t}\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\n\nexport default GoogleLoginButton"],"mappings":";AAAA,SAAQA,WAAW,QAAO,qBAAqB;AAC/C,SAAQC,mBAAmB,QAAO,qBAAqB;AACvD,OAAOC,MAAM,MAAM,SAAS;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE7B,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAC5B,MAAMC,QAAQ,GAAG,0EAA0E;EAC9F,IAAIC,KAAK,GAAG,IAAI;EAChB,IAAIC,OAAO,GAAG,IAAI;EACf,oBACIN,OAAA,CAAAE,SAAA;IAAAK,QAAA,eACIP,OAAA,CAACH,mBAAmB;MAACO,QAAQ,EAAEA,QAAS;MAAAG,QAAA,eACpCP,OAAA,CAACJ,WAAW;QACRY,SAAS,EAAGC,GAAG,IAAK;UAClC,IAAIC,KAAK,GAAGD,GAAG,CAACE,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC;UACrC,KAAK,MAAMC,OAAO,IAAIH,KAAK,EAAE;YAC5BI,OAAO,CAACC,GAAG,CAACF,OAAO,CAAC;YACpBC,OAAO,CAACC,GAAG,CAACjB,MAAM,CAACkB,MAAM,CAACH,OAAO,CAAC,CAAC;UACpC;QACc,CAAE;QACFI,SAAS,EAAGC,GAAG,IAAK;UAClCJ,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC;UACTD,OAAO,CAACC,GAAG,CAACG,GAAG,CAAC;QACpB;MAAE;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACe;EAAC,gBACxB,CAAC;AAEX,CAAC;AAACC,EAAA,GAvBIpB,iBAAiB;AA0BvB,eAAeA,iBAAiB;AAAA,IAAAoB,EAAA;AAAAC,YAAA,CAAAD,EAAA"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\nconst headersToObject = thing => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({\n caseless\n }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n}","map":{"version":3,"names":["utils","AxiosHeaders","headersToObject","thing","toJSON","mergeConfig","config1","config2","config","getMergedValue","target","source","caseless","isPlainObject","merge","call","isArray","slice","mergeDeepProperties","a","b","isUndefined","undefined","valueFromConfig2","defaultToConfig2","mergeDirectKeys","prop","mergeMap","url","method","data","baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","validateStatus","headers","forEach","Object","keys","assign","computeConfigValue","configValue"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/core/mergeConfig.js"],"sourcesContent":["'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\grass\\\\Desktop\\\\sicdorak\\\\frontend\\\\src\\\\GoogleLoginButton.js\";\nimport { GoogleLogin } from \"@react-oauth/google\";\nimport { GoogleOAuthProvider } from \"@react-oauth/google\";\nimport base64 from 'base-64';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';\n let token = null;\n let payload = null;\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(GoogleOAuthProvider, {\n clientId: clientId,\n children: /*#__PURE__*/_jsxDEV(GoogleLogin, {\n onSuccess: res => {\n /* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n aaaa.bbbb.cccc\n \n [base64]aaaa: 헤더\n [base64]bbbb: 페이로드 (실질적인 데이터)\n [RS256]cccc: 서명\n \n RS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n */\n let datas = res.credential.split('.');\n /*\n for (const element of datas) {\n \ttry {\n \t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n \t}\n \tcatch (err) {\n \t\tconsole.log(element);\t\n \t}\n }\n */\n\n const obj = JSON.parse(base64.decode(datas[1]));\n console.log(obj);\n commuTest(obj);\n },\n onFailure: err => {\n console.log(\"Login Failed\");\n console.log(err);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, this)\n }, void 0, false);\n};\n_c = GoogleLoginButton;\nfunction commuTest(payloadObj) {\n fetch('http://localhost:8080/temp', {\n //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: JSON.stringify(payloadObj)\n });\n // .then(response => response.json())\n // .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton;\nvar _c;\n$RefreshReg$(_c, \"GoogleLoginButton\");","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsxDEV","_jsxDEV","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","datas","credential","split","obj","JSON","parse","decode","console","log","commuTest","onFailure","err","fileName","_jsxFileName","lineNumber","columnNumber","_c","payloadObj","fetch","method","body","stringify","$RefreshReg$"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\n\t\t\t\t\t\t/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\n\t\t\t\t\t\tconst obj = JSON.parse(base64.decode(datas[1]));\n\t\t\t\t\t\tconsole.log(obj);\t\n\t\t\t\t\t\tcommuTest(obj);\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\nfunction commuTest(payloadObj) {\n fetch('http://localhost:8080/temp', { //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: JSON.stringify(payloadObj)\n })\n// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton"],"mappings":";AAAA,SAAQA,WAAW,QAAO,qBAAqB;AAC/C,SAAQC,mBAAmB,QAAO,qBAAqB;AACvD,OAAOC,MAAM,MAAM,SAAS;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE7B,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAC5B,MAAMC,QAAQ,GAAG,0EAA0E;EAC9F,IAAIC,KAAK,GAAG,IAAI;EAChB,IAAIC,OAAO,GAAG,IAAI;EACf,oBACIN,OAAA,CAAAE,SAAA;IAAAK,QAAA,eACIP,OAAA,CAACH,mBAAmB;MAACO,QAAQ,EAAEA,QAAS;MAAAG,QAAA,eACpCP,OAAA,CAACJ,WAAW;QACRY,SAAS,EAAGC,GAAG,IAAK;UAElC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;UACM,IAAIC,KAAK,GAAGD,GAAG,CAACE,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC;UACrC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;UAEM,MAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACjB,MAAM,CAACkB,MAAM,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;UAC/CO,OAAO,CAACC,GAAG,CAACL,GAAG,CAAC;UAChBM,SAAS,CAACN,GAAG,CAAC;QACA,CAAE;QACFO,SAAS,EAAGC,GAAG,IAAK;UAClCJ,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC;UACTD,OAAO,CAACC,GAAG,CAACG,GAAG,CAAC;QACpB;MAAE;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACe;EAAC,gBACxB,CAAC;AAEX,CAAC;AAACC,EAAA,GA3CIvB,iBAAiB;AA6CvB,SAASgB,SAASA,CAACQ,UAAU,EAAE;EAC3BC,KAAK,CAAC,4BAA4B,EAAE;IAAE;IACpCC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEhB,IAAI,CAACiB,SAAS,CAACJ,UAAU;EACjC,CAAC,CAAC;EACN;EACA;AACA;;AAEA,eAAexB,iBAAiB;AAAA,IAAAuB,EAAA;AAAAM,YAAA,CAAAN,EAAA"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\nexport default platform.hasStandardBrowserEnv ?\n// Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() :\n// Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","map":{"version":3,"names":["utils","platform","hasStandardBrowserEnv","standardBrowserEnv","write","name","value","expires","path","domain","secure","cookie","push","encodeURIComponent","isNumber","Date","toGMTString","isString","document","join","read","match","RegExp","decodeURIComponent","remove","now","nonStandardBrowserEnv"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/helpers/cookies.js"],"sourcesContent":["'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,KAAK,MAAM,eAAe;AACjC,OAAOC,QAAQ,MAAM,sBAAsB;AAE3C,eAAeA,QAAQ,CAACC,qBAAqB;AAE7C;AACG,SAASC,kBAAkBA,CAAA,EAAG;EAC7B,OAAO;IACLC,KAAK,EAAE,SAASA,KAAKA,CAACC,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAE;MAChE,MAAMC,MAAM,GAAG,EAAE;MACjBA,MAAM,CAACC,IAAI,CAACP,IAAI,GAAG,GAAG,GAAGQ,kBAAkB,CAACP,KAAK,CAAC,CAAC;MAEnD,IAAIN,KAAK,CAACc,QAAQ,CAACP,OAAO,CAAC,EAAE;QAC3BI,MAAM,CAACC,IAAI,CAAC,UAAU,GAAG,IAAIG,IAAI,CAACR,OAAO,CAAC,CAACS,WAAW,CAAC,CAAC,CAAC;MAC3D;MAEA,IAAIhB,KAAK,CAACiB,QAAQ,CAACT,IAAI,CAAC,EAAE;QACxBG,MAAM,CAACC,IAAI,CAAC,OAAO,GAAGJ,IAAI,CAAC;MAC7B;MAEA,IAAIR,KAAK,CAACiB,QAAQ,CAACR,MAAM,CAAC,EAAE;QAC1BE,MAAM,CAACC,IAAI,CAAC,SAAS,GAAGH,MAAM,CAAC;MACjC;MAEA,IAAIC,MAAM,KAAK,IAAI,EAAE;QACnBC,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;MACvB;MAEAM,QAAQ,CAACP,MAAM,GAAGA,MAAM,CAACQ,IAAI,CAAC,IAAI,CAAC;IACrC,CAAC;IAEDC,IAAI,EAAE,SAASA,IAAIA,CAACf,IAAI,EAAE;MACxB,MAAMgB,KAAK,GAAGH,QAAQ,CAACP,MAAM,CAACU,KAAK,CAAC,IAAIC,MAAM,CAAC,YAAY,GAAGjB,IAAI,GAAG,WAAW,CAAC,CAAC;MAClF,OAAQgB,KAAK,GAAGE,kBAAkB,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACrD,CAAC;IAEDG,MAAM,EAAE,SAASA,MAAMA,CAACnB,IAAI,EAAE;MAC5B,IAAI,CAACD,KAAK,CAACC,IAAI,EAAE,EAAE,EAAEU,IAAI,CAACU,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC7C;EACF,CAAC;AACH,CAAC,CAAE,CAAC;AAEN;AACG,SAASC,qBAAqBA,CAAA,EAAG;EAChC,OAAO;IACLtB,KAAK,EAAE,SAASA,KAAKA,CAAA,EAAG,CAAC,CAAC;IAC1BgB,IAAI,EAAE,SAASA,IAAIA,CAAA,EAAG;MAAE,OAAO,IAAI;IAAE,CAAC;IACtCI,MAAM,EAAE,SAASA,MAAMA,CAAA,EAAG,CAAC;EAC7B,CAAC;AACH,CAAC,CAAE,CAAC"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;","map":{"version":3,"names":["FormData"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/platform/browser/classes/FormData.js"],"sourcesContent":["'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n"],"mappings":"AAAA,YAAY;;AAEZ,eAAe,OAAOA,QAAQ,KAAK,WAAW,GAAGA,QAAQ,GAAG,IAAI"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"import{GoogleLogin}from\"@react-oauth/google\";import{GoogleOAuthProvider}from\"@react-oauth/google\";import base64 from'base-64';import{jsx as _jsx}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";const GoogleLoginButton=()=>{const clientId='716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';let token=null;let payload=null;return/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(GoogleOAuthProvider,{clientId:clientId,children:/*#__PURE__*/_jsx(GoogleLogin,{onSuccess:res=>{/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/let datas=res.credential.split('.');/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/console.log(base64.decode(datas[1]));console.log(typeof base64.decode(datas[1]));commuTest(base64.decode(datas[1]));},onFailure:err=>{console.log(\"Login Failed\");console.log(err);}})})});};function commuTest(bodyContent){fetch('http://localhost:8080/temp',{//회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\nmethod:'POST',body:JSON.stringify(bodyContent)});// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}export default GoogleLoginButton;","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsx","_jsx","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","datas","credential","split","console","log","decode","commuTest","onFailure","err","bodyContent","fetch","method","body","JSON","stringify"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\n\t\t\t\t\t\t/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tconsole.log(base64.decode(datas[1]));\t\n\t\t\t\t\t\tconsole.log(typeof base64.decode(datas[1]));\t\n\t\t\t\t\t\tcommuTest(base64.decode(datas[1]));\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\nfunction commuTest(bodyContent) {\n fetch('http://localhost:8080/temp', { //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: JSON.stringify(bodyContent)\n })\n// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton"],"mappings":"AAAA,OAAQA,WAAW,KAAO,qBAAqB,CAC/C,OAAQC,mBAAmB,KAAO,qBAAqB,CACvD,MAAO,CAAAC,MAAM,KAAM,SAAS,CAAC,OAAAC,GAAA,IAAAC,IAAA,gCAAAC,QAAA,IAAAC,SAAA,yBAE7B,KAAM,CAAAC,iBAAiB,CAAGA,CAAA,GAAM,CAC5B,KAAM,CAAAC,QAAQ,CAAG,0EAA0E,CAC9F,GAAI,CAAAC,KAAK,CAAG,IAAI,CAChB,GAAI,CAAAC,OAAO,CAAG,IAAI,CACf,mBACIN,IAAA,CAAAE,SAAA,EAAAK,QAAA,cACIP,IAAA,CAACH,mBAAmB,EAACO,QAAQ,CAAEA,QAAS,CAAAG,QAAA,cACpCP,IAAA,CAACJ,WAAW,EACRY,SAAS,CAAGC,GAAG,EAAK,CAElC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACM,GAAI,CAAAC,KAAK,CAAGD,GAAG,CAACE,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC,CACrC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACMC,OAAO,CAACC,GAAG,CAAChB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpCG,OAAO,CAACC,GAAG,CAAC,MAAO,CAAAhB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3CM,SAAS,CAAClB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpB,CAAE,CACFO,SAAS,CAAGC,GAAG,EAAK,CAClCL,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,CACTD,OAAO,CAACC,GAAG,CAACI,GAAG,CAAC,CACpB,CAAE,CACL,CAAC,CACe,CAAC,CACxB,CAAC,CAEX,CAAC,CAED,QAAS,CAAAF,SAASA,CAACG,WAAW,CAAE,CAC5BC,KAAK,CAAC,4BAA4B,CAAE,CAAE;AACpCC,MAAM,CAAE,MAAM,CACdC,IAAI,CAAEC,IAAI,CAACC,SAAS,CAACL,WAAW,CAClC,CAAC,CAAC,CACN;AACA;AACA,CAEA,cAAe,CAAAhB,iBAAiB"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\nexport { axios as default, Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig };","map":{"version":3,"names":["axios","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","all","Cancel","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","default"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/index.js"],"sourcesContent":["import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,gBAAgB;;AAElC;AACA;AACA;AACA,MAAM;EACJC,KAAK;EACLC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,WAAW;EACXC,OAAO;EACPC,GAAG;EACHC,MAAM;EACNC,YAAY;EACZC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC,cAAc;EACdC,UAAU;EACVC,UAAU;EACVC;AACF,CAAC,GAAGhB,KAAK;AAET,SACEA,KAAK,IAAIiB,OAAO,EAChBhB,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,QAAQ,EACRC,WAAW,EACXC,OAAO,EACPC,GAAG,EACHC,MAAM,EACNC,YAAY,EACZC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,cAAc,EACdC,UAAU,EACVC,UAAU,EACVC,WAAW"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};","map":{"version":3,"names":["URLSearchParams","FormData","Blob","isBrowser","classes","protocols"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/platform/browser/index.js"],"sourcesContent":["import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,8BAA8B;AAC1D,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,OAAOC,IAAI,MAAM,mBAAmB;AAEpC,eAAe;EACbC,SAAS,EAAE,IAAI;EACfC,OAAO,EAAE;IACPJ,eAAe;IACfC,QAAQ;IACRC;EACF,CAAC;EACDG,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC5D,CAAC"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"import{GoogleLogin}from\"@react-oauth/google\";import{GoogleOAuthProvider}from\"@react-oauth/google\";import base64 from'base-64';import{jsx as _jsx}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";const GoogleLoginButton=()=>{const clientId='716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';let token=null;let payload=null;return/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(GoogleOAuthProvider,{clientId:clientId,children:/*#__PURE__*/_jsx(GoogleLogin,{onSuccess:res=>{console.log(res.credential);/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/let datas=res.credential.split('.');/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/commuTest(base64.decode(datas[1]));},onFailure:err=>{console.log(\"Login Failed\");console.log(err);}})})});};function commuTest(bodyContent){fetch('http://localhost:8080/temp',{//회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\nmethod:'POST',body:bodyContent});// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}export default GoogleLoginButton;","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsx","_jsx","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","console","log","credential","datas","split","commuTest","decode","onFailure","err","bodyContent","fetch","method","body"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconsole.log(res.credential);\n\t\t\t\t\t\t/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tcommuTest(base64.decode(datas[1]));\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\nfunction commuTest(bodyContent) {\n fetch('http://localhost:8080/temp', { //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: bodyContent\n })\n// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton"],"mappings":"AAAA,OAAQA,WAAW,KAAO,qBAAqB,CAC/C,OAAQC,mBAAmB,KAAO,qBAAqB,CACvD,MAAO,CAAAC,MAAM,KAAM,SAAS,CAAC,OAAAC,GAAA,IAAAC,IAAA,gCAAAC,QAAA,IAAAC,SAAA,yBAE7B,KAAM,CAAAC,iBAAiB,CAAGA,CAAA,GAAM,CAC5B,KAAM,CAAAC,QAAQ,CAAG,0EAA0E,CAC9F,GAAI,CAAAC,KAAK,CAAG,IAAI,CAChB,GAAI,CAAAC,OAAO,CAAG,IAAI,CACf,mBACIN,IAAA,CAAAE,SAAA,EAAAK,QAAA,cACIP,IAAA,CAACH,mBAAmB,EAACO,QAAQ,CAAEA,QAAS,CAAAG,QAAA,cACpCP,IAAA,CAACJ,WAAW,EACRY,SAAS,CAAGC,GAAG,EAAK,CAElCC,OAAO,CAACC,GAAG,CAACF,GAAG,CAACG,UAAU,CAAC,CAC3B;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACM,GAAI,CAAAC,KAAK,CAAGJ,GAAG,CAACG,UAAU,CAACE,KAAK,CAAC,GAAG,CAAC,CACrC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACMC,SAAS,CAACjB,MAAM,CAACkB,MAAM,CAACH,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpB,CAAE,CACFI,SAAS,CAAGC,GAAG,EAAK,CAClCR,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,CACTD,OAAO,CAACC,GAAG,CAACO,GAAG,CAAC,CACpB,CAAE,CACL,CAAC,CACe,CAAC,CACxB,CAAC,CAEX,CAAC,CAED,QAAS,CAAAH,SAASA,CAACI,WAAW,CAAE,CAC5BC,KAAK,CAAC,4BAA4B,CAAE,CAAE;AACpCC,MAAM,CAAE,MAAM,CACdC,IAAI,CAAEH,WACR,CAAC,CAAC,CACN;AACA;AACA,CAEA,cAAe,CAAAhB,iBAAiB"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n function convertValue(value) {\n if (value === null) return '';\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.isArray(value) && isFlatArray(value) || (utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el));\n });\n return false;\n }\n }\n if (isVisitable(value)) {\n return true;\n }\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n const stack = [];\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n stack.push(value);\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n stack.pop();\n }\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n build(obj);\n return formData;\n}\nexport default toFormData;","map":{"version":3,"names":["utils","AxiosError","PlatformFormData","isVisitable","thing","isPlainObject","isArray","removeBrackets","key","endsWith","slice","renderKey","path","dots","concat","map","each","token","i","join","isFlatArray","arr","some","predicates","toFlatObject","filter","prop","test","toFormData","obj","formData","options","isObject","TypeError","FormData","metaTokens","indexes","defined","option","source","isUndefined","visitor","defaultVisitor","_Blob","Blob","useBlob","isSpecCompliantForm","isFunction","convertValue","value","isDate","toISOString","isBlob","isArrayBuffer","isTypedArray","Buffer","from","JSON","stringify","isFileList","toArray","forEach","el","index","append","stack","exposedHelpers","Object","assign","build","indexOf","Error","push","result","call","isString","trim","pop"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/helpers/toFormData.js"],"sourcesContent":["'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n config = mergeConfig(this.defaults, config);\n const {\n transitional,\n paramsSerializer,\n headers\n } = config;\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n headers && utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], method => {\n delete headers[method];\n });\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n let promise;\n let i = 0;\n let len;\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n promise = Promise.resolve(config);\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n return promise;\n }\n len = requestInterceptorChain.length;\n let newConfig = config;\n i = 0;\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n i = 0;\n len = responseInterceptorChain.length;\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n return promise;\n }\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n Axios.prototype[method] = generateHTTPMethod();\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\nexport default Axios;","map":{"version":3,"names":["utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","buildFullPath","validator","AxiosHeaders","validators","Axios","constructor","instanceConfig","defaults","interceptors","request","response","configOrUrl","config","url","transitional","paramsSerializer","headers","undefined","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","isFunction","serialize","encode","function","method","toLowerCase","contextHeaders","merge","common","forEach","concat","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","pushResponseInterceptors","push","promise","i","len","chain","bind","apply","length","Promise","resolve","then","newConfig","onFulfilled","onRejected","error","call","reject","getUri","fullPath","baseURL","params","forEachMethodNoData","prototype","data","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/node_modules/axios/lib/core/Axios.js"],"sourcesContent":["'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
{"ast":null,"code":"import{GoogleLogin}from\"@react-oauth/google\";import{GoogleOAuthProvider}from\"@react-oauth/google\";import base64 from'base-64';import{jsx as _jsx}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";const GoogleLoginButton=()=>{const clientId='716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com';let token=null;let payload=null;return/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(GoogleOAuthProvider,{clientId:clientId,children:/*#__PURE__*/_jsx(GoogleLogin,{onSuccess:res=>{/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/let datas=res.credential.split('.');/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/console.log(base64.decode(datas[1]));console.log(typeof base64.decode(datas[1]));commuTest(base64.decode(datas[1]));},onFailure:err=>{console.log(\"Login Failed\");console.log(err);}})})});};function commuTest(bodyContent){fetch('http://localhost:8080/temp',{//회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\nmethod:'POST',body:bodyContent});// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}export default GoogleLoginButton;","map":{"version":3,"names":["GoogleLogin","GoogleOAuthProvider","base64","jsx","_jsx","Fragment","_Fragment","GoogleLoginButton","clientId","token","payload","children","onSuccess","res","datas","credential","split","console","log","decode","commuTest","onFailure","err","bodyContent","fetch","method","body"],"sources":["C:/Users/grass/Desktop/sicdorak/frontend/src/GoogleLoginButton.js"],"sourcesContent":["import {GoogleLogin} from \"@react-oauth/google\";\nimport {GoogleOAuthProvider} from \"@react-oauth/google\";\nimport base64 from 'base-64';\n\nconst GoogleLoginButton = () => {\n const clientId = '716858812522-rb0pfisq317unkh4so5hvbu16p19kqp8.apps.googleusercontent.com'\n\tlet token = null;\n\tlet payload = null;\n return (\n <>\n <GoogleOAuthProvider clientId={clientId}>\n <GoogleLogin\n onSuccess={(res) => {\n\n\t\t\t\t\t\t/* 발급받은 토큰은 . 을 기준으로 3 개로 나뉜다.\n\t\t\t\t\t\taaaa.bbbb.cccc\n\t\t\t\t\t\t\n\t\t\t\t\t\t[base64]aaaa: 헤더\n\t\t\t\t\t\t[base64]bbbb: 페이로드 (실질적인 데이터)\n\t\t\t\t\t\t[RS256]cccc: 서명\n\t\t\t\t\t\t\n\t\t\t\t\t\tRS256 : 암호화 알고리즘, JWT 서명할 때 사용한다고 함\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tlet datas = res.credential.split('.')\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tfor (const element of datas) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconsole.log(base64.decode(element));\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\tconsole.log(element);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tconsole.log(base64.decode(datas[1]));\t\n\t\t\t\t\t\tconsole.log(typeof base64.decode(datas[1]));\t\n\t\t\t\t\t\tcommuTest(base64.decode(datas[1]));\n }}\n onFailure={(err) => {\n\t\t\t\t\t\tconsole.log(\"Login Failed\");\n console.log(err);\n }}\n />\n </GoogleOAuthProvider>\n </>\n );\n};\n\nfunction commuTest(bodyContent) {\n fetch('http://localhost:8080/temp', { //회원가입시 입력한 값들이 서버로 전송될 수 있는 주소\n method: 'POST',\n body: bodyContent\n })\n// .then(response => response.json())\n// .then(result => console.log('결과: ', result));\t\n}\n\nexport default GoogleLoginButton"],"mappings":"AAAA,OAAQA,WAAW,KAAO,qBAAqB,CAC/C,OAAQC,mBAAmB,KAAO,qBAAqB,CACvD,MAAO,CAAAC,MAAM,KAAM,SAAS,CAAC,OAAAC,GAAA,IAAAC,IAAA,gCAAAC,QAAA,IAAAC,SAAA,yBAE7B,KAAM,CAAAC,iBAAiB,CAAGA,CAAA,GAAM,CAC5B,KAAM,CAAAC,QAAQ,CAAG,0EAA0E,CAC9F,GAAI,CAAAC,KAAK,CAAG,IAAI,CAChB,GAAI,CAAAC,OAAO,CAAG,IAAI,CACf,mBACIN,IAAA,CAAAE,SAAA,EAAAK,QAAA,cACIP,IAAA,CAACH,mBAAmB,EAACO,QAAQ,CAAEA,QAAS,CAAAG,QAAA,cACpCP,IAAA,CAACJ,WAAW,EACRY,SAAS,CAAGC,GAAG,EAAK,CAElC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACM,GAAI,CAAAC,KAAK,CAAGD,GAAG,CAACE,UAAU,CAACC,KAAK,CAAC,GAAG,CAAC,CACrC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACMC,OAAO,CAACC,GAAG,CAAChB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpCG,OAAO,CAACC,GAAG,CAAC,MAAO,CAAAhB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3CM,SAAS,CAAClB,MAAM,CAACiB,MAAM,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpB,CAAE,CACFO,SAAS,CAAGC,GAAG,EAAK,CAClCL,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,CACTD,OAAO,CAACC,GAAG,CAACI,GAAG,CAAC,CACpB,CAAE,CACL,CAAC,CACe,CAAC,CACxB,CAAC,CAEX,CAAC,CAED,QAAS,CAAAF,SAASA,CAACG,WAAW,CAAE,CAC5BC,KAAK,CAAC,4BAA4B,CAAE,CAAE;AACpCC,MAAM,CAAE,MAAM,CACdC,IAAI,CAAEH,WACR,CAAC,CAAC,CACN;AACA;AACA,CAEA,cAAe,CAAAhB,iBAAiB"},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment