StreamChat Vapor Swift 后端

此库包含使用 Vapor Swift 将客户端应用程序与 Stream 后端集成的代码。 它还包含一个示例应用程序,演示如何将该库与 Vapor 应用程序集成。

集成库

将该库作为依赖项添加到您的 Package.swift

dependencies: [
    // ...
    .package(name: "StreamChat", url: "https://github.com/GetStream/stream-chat-vapor-swift.git", from: "0.1.0"),
],

然后将依赖项添加到您的应用程序,例如:

.target(
    name: "App",
    dependencies: [
        .product(name: "StreamSDKVapor", package: "StreamChat"),
        // ...
    ],
    // ...

配置

Stream 库需要您的 Stream 访问密钥和访问密钥密码才能工作。 如下配置该库:

// Get the keys, for example from environment variables
guard let streamAccessKey = Environment.get("STREAM_ACCESS_KEY"), let streamAccessSecret = Environment.get("STREAM_ACCESS_SECRET") else {
    app.logger.critical("STREAM keys not set")
    fatalError("STREAM keys not set")
}

let streamConfig = StreamConfiguration(accessKey: streamAccessKey, accessSecret: streamAccessSecret)
app.stream.use(streamConfig)

生成 JWT

要生成与 Stream 后端一起使用的 JWT,您需要用户 ID。 然后,您可以调用 Stream 库来生成令牌:

let streamToken = try req.stream.createToken(name: userID)

您也可以传递一个可选的日期,以指定令牌的过期时间:

let streamToken = try req.stream.createToken(name: userID, expiresAt: Date().addingTimeInterval(3600))

运行示例应用程序

要开始使用,您需要做几件事:

该应用程序允许用户通过向 /auth/register 发送 POST 请求进行传统注册,以及使用 "Sign In With Apple" (使用 Apple 登录) 。

注册或登录时,Vapor 应用程序会返回一个用于与 API 交互的 API 密钥(作为已验证的用户),以及一个用于 Stream 后端的 JWT。

更多示例代码

请参阅以下支持存储库,了解如何在您的代码库中集成此库:

博客文章

我们还发表了一篇 博客文章,介绍了此存储库中的内容以及如何入门