Closed SuzukiTakamasa closed 5 months ago
追記: 開発用の環境では、APIの単体テストのしやすさを考慮して全てのオリジンを許可する設定とする
use worker::*;
fn main(mut req: Request, env: Env, _ctx: Context) -> Result<Response> {
// 許可するオリジンを取得
let allowed_origins = vec![
env.var("ALLOWED_ORIGIN_1")?.to_string(),
env.var("ALLOWED_ORIGIN_2")?.to_string(),
env.var("ALLOWED_ORIGIN_3")?.to_string(),
];
// オリジンをカンマ区切りの文字列に変換
let allowed_origins_str = allowed_origins.join(", ");
let response = Response::ok("Hello World")?;
let mut headers = response.headers().clone();
// CORSヘッダーを設定
headers.set("Access-Control-Allow-Origin", allowed_origins_str.parse()?)?;
headers.set("Access-Control-Allow-Methods", "GET, POST, OPTIONS")?;
headers.set("Access-Control-Allow-Headers", "Content-Type")?;
Ok(response.with_headers(headers))
}
複数のCORSの設定はできならしいので、対応しないこととして一旦クローズ
現状全てのオリジンを許容してしまっているため、これをCloudflare PagesとLINE bot用のCloudflare Workerからのアクセスのみを許可するようにする