Updated axios request object, added minio
This commit is contained in:
@@ -17,6 +17,12 @@ REFRESH_TOKEN_MAXAGE=30
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
|
||||
MINIO_ROOT_USER=siren
|
||||
MINIO_ROOT_PASSWORD=
|
||||
MINIO_HOST=localhost
|
||||
MINIO_PORT=9000
|
||||
MINIO_PORT_INTERNAL=9001
|
||||
|
||||
SERVICE_HOST=localhost
|
||||
SERVICE_PORT=5000
|
||||
DATA_DIR_PATH=
|
||||
|
||||
@@ -28,6 +28,7 @@ argon2 = "0.5.2"
|
||||
jsonwebtoken = "9.0.0"
|
||||
redis = { version = "0.23.3", features = ["tokio-comp", "connection-manager", "r2d2"] }
|
||||
base64 = "0.21.4"
|
||||
rust-s3 = "0.33.0"
|
||||
|
||||
[dependencies.tokio]
|
||||
version = "1.32.0"
|
||||
|
||||
@@ -16,6 +16,7 @@ build: ## Build the docker image
|
||||
utils: ## Start the utils
|
||||
docker compose up -d db
|
||||
docker compose up -d redis
|
||||
docker compose up -d minio
|
||||
|
||||
up: ## Start the app
|
||||
docker compose up -d
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
version: '3.8'
|
||||
|
||||
x-env_file_personifi: &env
|
||||
- .env
|
||||
|
||||
name: siren
|
||||
services:
|
||||
service:
|
||||
@@ -10,13 +13,14 @@ services:
|
||||
dockerfile: ./Dockerfile
|
||||
args:
|
||||
- VERSION=${SIREN_VERSION:-latest}
|
||||
env_file:
|
||||
- .env
|
||||
env_file: *env
|
||||
environment:
|
||||
DATABASE_HOST: db
|
||||
DATABASE_PORT: 5432
|
||||
REDIS_HOST: redis
|
||||
REDIS_PORT: 6379
|
||||
MINIO_HOST: minio
|
||||
MINIO_PORT: 9000
|
||||
SERVICE_HOST: service
|
||||
SERVICE_PORT: 5000
|
||||
DATA_DIR_PATH: /data
|
||||
@@ -33,8 +37,7 @@ services:
|
||||
db:
|
||||
image: postgres:latest
|
||||
container_name: siren-db
|
||||
env_file:
|
||||
- .env
|
||||
env_file: *env
|
||||
environment:
|
||||
POSTGRES_USER: ${DATABASE_USER}
|
||||
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
||||
@@ -55,10 +58,26 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
minio:
|
||||
image: minio/minio
|
||||
container_name: siren-minio
|
||||
environment:
|
||||
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- minio:/data
|
||||
ports:
|
||||
- ${MINIO_PORT:-9000}:9000
|
||||
- ${MINIO_PORT_INTERNAL:-9001}:9001
|
||||
networks:
|
||||
- backend
|
||||
command: server --console-address ":9001" /data
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
db:
|
||||
db_logs:
|
||||
minio:
|
||||
|
||||
networks:
|
||||
frontend:
|
||||
|
||||
@@ -98,11 +98,13 @@ async fn login(request: web::Json<LoginRequest>) -> HttpResponse {
|
||||
.path("/")
|
||||
.max_age(Duration::new(access_token_max_age * 60, 0))
|
||||
.http_only(true)
|
||||
.secure(true)
|
||||
.finish();
|
||||
let refresh_cookie = Cookie::build("refresh_token", refresh_token_details.token.clone().unwrap())
|
||||
.path("/")
|
||||
.max_age(Duration::new(refresh_token_max_age * 60, 0))
|
||||
.http_only(true)
|
||||
.secure(true)
|
||||
.finish();
|
||||
let logged_in_cookie = Cookie::build("logged_in", "true")
|
||||
.path("/")
|
||||
@@ -210,6 +212,7 @@ async fn refresh(req: HttpRequest) -> HttpResponse {
|
||||
.path("/")
|
||||
.max_age(Duration::new(access_token_max_age * 60, 0))
|
||||
.http_only(true)
|
||||
.secure(true)
|
||||
.finish();
|
||||
let logged_in_cookie = Cookie::build("logged_in", "true")
|
||||
.path("/")
|
||||
@@ -254,6 +257,7 @@ async fn refresh(req: HttpRequest) -> HttpResponse {
|
||||
.path("/")
|
||||
.max_age(Duration::new(refresh_token_max_age * 60, 0))
|
||||
.http_only(true)
|
||||
.secure(true)
|
||||
.finish();
|
||||
|
||||
HttpResponse::Ok()
|
||||
|
||||
@@ -9,7 +9,7 @@ services:
|
||||
environment:
|
||||
- NODE_ENV=${NODE_ENV:-development}
|
||||
ports:
|
||||
- ${UI_PORT:-8080}:3000
|
||||
- ${UI_PORT:-3000}:3000
|
||||
build:
|
||||
context: ./
|
||||
target: dev
|
||||
|
||||
@@ -2,7 +2,7 @@ import { getRequest, postRequest } from '.';
|
||||
import { RegisterUser, ResponseAuth } from './auth.types';
|
||||
|
||||
export async function login(email: string, password: string): Promise<ResponseAuth | undefined> {
|
||||
const response = await postRequest('auth/login', { email, password }, { withCredentials: true });
|
||||
const response = await postRequest('auth/login', { email, password });
|
||||
if (response?.status === 200) {
|
||||
return response.data as ResponseAuth;
|
||||
} else {
|
||||
@@ -11,7 +11,7 @@ export async function login(email: string, password: string): Promise<ResponseAu
|
||||
}
|
||||
|
||||
export async function register(user: RegisterUser): Promise<boolean> {
|
||||
const response = await postRequest('auth/register', user, { withCredentials: true });
|
||||
const response = await postRequest('auth/register', user);
|
||||
if (response?.status === 201) {
|
||||
return true;
|
||||
} else {
|
||||
@@ -20,11 +20,11 @@ export async function register(user: RegisterUser): Promise<boolean> {
|
||||
}
|
||||
|
||||
export async function logout() {
|
||||
return await postRequest('auth/logout', {}, { withCredentials: true });
|
||||
return await postRequest('auth/logout', {});
|
||||
}
|
||||
|
||||
export async function refresh(refresh_token_rotation?: boolean): Promise<ResponseAuth | undefined> {
|
||||
const response = await getRequest('auth/refresh', { withCredentials: true, params: { refresh_token_rotation } });
|
||||
const response = await getRequest('auth/refresh', { params: { refresh_token_rotation } });
|
||||
if (response?.status === 200) {
|
||||
return response.data as ResponseAuth;
|
||||
} else {
|
||||
@@ -33,7 +33,7 @@ export async function refresh(refresh_token_rotation?: boolean): Promise<Respons
|
||||
}
|
||||
|
||||
export async function me(): Promise<ResponseAuth | undefined> {
|
||||
const response = await getRequest('auth/me', { withCredentials: true });
|
||||
const response = await getRequest('auth/me');
|
||||
if (response?.status === 200) {
|
||||
return response.data;
|
||||
} else {
|
||||
|
||||
@@ -1,15 +1,33 @@
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
|
||||
const serviceHost = process.env.SERVICE_HOST || 'http://localhost';
|
||||
const servicePort = process.env.SERVICE_PORT || 5000;
|
||||
|
||||
function createAxiosClient(): AxiosInstance {
|
||||
const axiosClient = axios.create({
|
||||
baseURL: `${serviceHost}:${servicePort}`
|
||||
});
|
||||
|
||||
axiosClient.interceptors.request.use(
|
||||
(request) => {
|
||||
request.withCredentials = true;
|
||||
return request;
|
||||
},
|
||||
(error) => {
|
||||
console.error(error);
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
return axiosClient;
|
||||
}
|
||||
|
||||
const axiosClient = createAxiosClient();
|
||||
|
||||
export async function getRequest(
|
||||
url: string,
|
||||
config?: AxiosRequestConfig<any>
|
||||
): Promise<AxiosResponse<any, any> | undefined> {
|
||||
const response = await axios
|
||||
.get(`${serviceHost}:${servicePort}/${url}`, config)
|
||||
.catch((error) => console.error(error));
|
||||
const response = await axiosClient.get(`/${url}`, config);
|
||||
return response || undefined;
|
||||
}
|
||||
|
||||
@@ -18,9 +36,7 @@ export async function postRequest(
|
||||
data?: any,
|
||||
config?: AxiosRequestConfig<any>
|
||||
): Promise<AxiosResponse<any, any> | undefined> {
|
||||
const response = await axios
|
||||
.post(`${serviceHost}:${servicePort}/${url}`, data, config)
|
||||
.catch((error) => console.error(error));
|
||||
const response = await axiosClient.post(`/${url}`, data, config);
|
||||
return response || undefined;
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ export default function Topbar() {
|
||||
}
|
||||
});
|
||||
}
|
||||
}, []);
|
||||
}, [pathName]);
|
||||
|
||||
useEffect(() => {
|
||||
const h: HeaderItem[] = [];
|
||||
|
||||
Reference in New Issue
Block a user