| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { api } from "src/boot/axios";
- import { Cookies } from "quasar";
- import { permissionStore } from "src/stores/permission";
- import { userStore } from "src/stores/user";
- export const useAuth = () => {
- const login = async (email, password) => {
- try {
- const response = await api.post("/login", {
- email: email,
- password: password,
- });
- if (response.status === 200) {
- const payload = response.data.payload;
- const accessTokenExpiresIn = new Date(
- new Date().getTime() + payload.access_token_expires_in * 1000,
- );
- const refreshTokenExpiresIn = new Date(
- new Date().getTime() + payload.refresh_token_expires_in * 1000,
- );
- Cookies.set("access_token", payload.access_token, {
- expires: accessTokenExpiresIn,
- });
- Cookies.set("refresh_token", payload.refresh_token, {
- expires: refreshTokenExpiresIn,
- });
- userStore().user = payload.user;
- await permissionStore().fetchScopes();
- }
- return response;
- } catch (error) {
- return Promise.reject(error);
- }
- };
- const logout = async () => {
- try {
- const response = await api.post("/logout");
- if (response.status === 200) {
- Cookies.remove("access_token");
- Cookies.remove("refresh_token");
- await permissionStore().fetchScopes();
- }
- } catch (error) {
- console.error(error);
- }
- };
- const refreshToken = async () => {
- try {
- const refresh_token = Cookies.get("refresh_token");
- const response = await api.post("/refresh", {
- refresh_token: refresh_token,
- });
- if (response.status === 200) {
- const payload = response.data.payload;
- const accessTokenExpiresIn = new Date(
- new Date().getTime() + payload.access_token_expires_in * 1000,
- );
- const refreshTokenExpiresIn = new Date(
- new Date().getTime() + payload.refresh_token_expires_in * 1000,
- );
- Cookies.set("access_token", payload.access_token, {
- expires: accessTokenExpiresIn,
- });
- Cookies.set("refresh_token", payload.refresh_token, {
- expires: refreshTokenExpiresIn,
- });
- userStore().user = payload.user;
- }
- } catch (error) {
- return Promise.reject(error);
- }
- };
- return {
- login,
- logout,
- refreshToken,
- };
- };
|