Cors.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace Config;
  3. use CodeIgniter\Config\BaseConfig;
  4. /**
  5. * Cross-Origin Resource Sharing (CORS) Configuration
  6. *
  7. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
  8. */
  9. class Cors extends BaseConfig
  10. {
  11. /**
  12. * The default CORS configuration.
  13. *
  14. * @var array{
  15. * allowedOrigins: list<string>,
  16. * allowedOriginsPatterns: list<string>,
  17. * supportsCredentials: bool,
  18. * allowedHeaders: list<string>,
  19. * exposedHeaders: list<string>,
  20. * allowedMethods: list<string>,
  21. * maxAge: int,
  22. * }
  23. */
  24. public array $default = [
  25. /**
  26. * Origins for the `Access-Control-Allow-Origin` header.
  27. *
  28. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
  29. *
  30. * E.g.:
  31. * - ['http://localhost:8080']
  32. * - ['https://www.example.com']
  33. */
  34. 'allowedOrigins' => [],
  35. /**
  36. * Origin regex patterns for the `Access-Control-Allow-Origin` header.
  37. *
  38. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
  39. *
  40. * NOTE: A pattern specified here is part of a regular expression. It will
  41. * be actually `#\A<pattern>\z#`.
  42. *
  43. * E.g.:
  44. * - ['https://\w+\.example\.com']
  45. */
  46. 'allowedOriginsPatterns' => [],
  47. /**
  48. * Weather to send the `Access-Control-Allow-Credentials` header.
  49. *
  50. * The Access-Control-Allow-Credentials response header tells browsers whether
  51. * the server allows cross-origin HTTP requests to include credentials.
  52. *
  53. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
  54. */
  55. 'supportsCredentials' => false,
  56. /**
  57. * Set headers to allow.
  58. *
  59. * The Access-Control-Allow-Headers response header is used in response to
  60. * a preflight request which includes the Access-Control-Request-Headers to
  61. * indicate which HTTP headers can be used during the actual request.
  62. *
  63. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
  64. */
  65. 'allowedHeaders' => [],
  66. /**
  67. * Set headers to expose.
  68. *
  69. * The Access-Control-Expose-Headers response header allows a server to
  70. * indicate which response headers should be made available to scripts running
  71. * in the browser, in response to a cross-origin request.
  72. *
  73. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
  74. */
  75. 'exposedHeaders' => [],
  76. /**
  77. * Set methods to allow.
  78. *
  79. * The Access-Control-Allow-Methods response header specifies one or more
  80. * methods allowed when accessing a resource in response to a preflight
  81. * request.
  82. *
  83. * E.g.:
  84. * - ['GET', 'POST', 'PUT', 'DELETE']
  85. *
  86. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
  87. */
  88. 'allowedMethods' => [],
  89. /**
  90. * Set how many seconds the results of a preflight request can be cached.
  91. *
  92. * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age
  93. */
  94. 'maxAge' => 7200,
  95. ];
  96. }