Kitura

APIDoc Build Status - Master macOS Linux Apache 2 Slack Status

Kitura-CORS

Kitura-CORS 是一个跨域资源共享 (CORS) 中间件。由某个服务提供的网页或脚本可能包含对托管在另一个域中的资源或服务的引用 - 例如公共服务或资源。浏览器对此类资源的请求是跨域请求的一个例子,并且通常被 同源安全策略禁止。

CORS 允许您以受控方式绕过同源限制,以便可以在不同域之间共享资源。支持 CORS 的客户端会向在域 B 托管资源的服务发出一个“预检”请求,其中包含指定域 A 的 Origin 标头。然后,该服务可以使用 Access-Control-Allow-Origin 标头响应客户端,该标头指示是否应允许访问此资源。

您可以在 Kitura 应用程序中使用 CORS 中间件来授权外部服务访问您提供的资源或 API。

Swift 版本

最新版本的 Kitura-CORS 需要 Swift 4.1.2。您可以通过点击此链接下载此版本的 Swift 二进制文件。不保证与其他 Swift 版本的兼容性。

用法

添加依赖项

Kitura-CORS 包添加到应用程序的 Package.swift 文件中的依赖项中。 将 "x.x.x" 替换为最新的 Kitura-CORS 版本

.package(url: "https://github.com/Kitura/Kitura-CORS.git", from: "x.x.x")

KituraCORS 添加到您的目标的依赖项中

.target(name: "example", dependencies: ["KituraCORS"]),

导入包

import KituraCORS

使用 Kitura-CORS

要创建 Kitura-CORS 中间件的实例,请使用

public init(options : Options)

其中可能的 Options

有关 CORS 的更多信息,请参阅 CORS 文档

例子

首先创建一个 CORS 实例。在以下示例中,资源作者有一个资源,他们希望 http://www.abc.com 能够访问。实际请求中只能使用 GETPUT 方法,响应可以缓存 5 秒,并且实际请求中将仅使用 Content-Type 标头

import Kitura
import KituraCORS

let options = Options(allowedOrigin: .origin("http://www.abc.com"),
                      methods: ["GET","PUT"],
                      allowedHeaders: ["Content-Type"],
                      maxAge: 5)

let cors = CORS(options: options)

Kitura-CORS 实现了 RouterMiddleware 协议;因此,要将中间件连接到您的路径,您需要使用 Router 方法之一,例如

let router = Router()
router.all("/cors", middleware: cors)

API 文档

有关更多信息,请访问我们的 API 参考

社区

我们喜欢讨论服务器端 Swift 和 Kitura。 加入我们的 Slack 与团队见面!

许可证

此库已获得 Apache 2.0 许可。完整的许可文本可在 LICENSE 中找到。