summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2022-11-04 10:53:59 +0700
committerIT Fixcomart <it@fixcomart.co.id>2022-11-04 10:53:59 +0700
commite93103fa78d610737e56b1b99056acdd84a9adde (patch)
treec807a25ee1c9a5e2aaa915d562074e22e04cda04
parente4b035a1471bd70872bb12012442367933fc8852 (diff)
Auth with token method
-rw-r--r--package.json1
-rw-r--r--src/helpers/apiOdoo.js25
2 files changed, 22 insertions, 4 deletions
diff --git a/package.json b/package.json
index da136fd0..dc088461 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"axios": "^1.1.3",
+ "cookies-next": "^2.1.1",
"next": "13.0.0",
"next-progress": "^2.2.0",
"react": "18.2.0",
diff --git a/src/helpers/apiOdoo.js b/src/helpers/apiOdoo.js
index 559c31c3..aff27bc3 100644
--- a/src/helpers/apiOdoo.js
+++ b/src/helpers/apiOdoo.js
@@ -1,14 +1,31 @@
+import { getCookie, setCookie } from 'cookies-next';
+
const axios = require('axios');
+const renewToken = async () => {
+ let res = await axios.get(process.env.DB_HOST + '/api/token');
+ setCookie('token', res.data.result);
+ return res.data.result;
+};
+
+const getToken = async () => {
+ let token = getCookie('token');
+ if (token == undefined) token = await renewToken();
+ return token;
+};
+
const getOdoo = async (url) => {
try {
- let res = await axios.get(process.env.DB_HOST + url);
+ let token = await getToken();
+ let res = await axios.get(process.env.DB_HOST + url, {headers: {Authorization: token}});
+ if (res.data.status.code == 401) {
+ await renewToken();
+ return getOdoo(url);
+ }
return res.data.result || [];
} catch (error) {
console.log(error);
}
}
-export {
- getOdoo,
-}; \ No newline at end of file
+export { getOdoo }; \ No newline at end of file