Files
2024-02-15 09:27:03 +00:00

25 lines
765 B
Rust

// use actix_web::http::header;
use crate::configs::settings;
pub fn cors(config: settings::CorsSettings) -> actix_cors::Cors {
let allowed_methods = config.allowed_methods.iter().map(|s| s.as_str());
let mut cors = actix_cors::Cors::default()
.allowed_methods(allowed_methods)
.allow_any_header()
.max_age(config.max_age);
if config.wildcard_origin {
cors = cors.allow_any_origin()
} else {
for origin in &config.origins {
cors = cors.allowed_origin(origin);
}
// Only allow this in case if it's not wildcard origins. ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
cors = cors.supports_credentials();
}
cors
}