草庐IT

swift - 如何为 vapor web 框架编写中间件?

使用工具箱命令创建了一个新项目:vapornewprojectname在main.swift文件中我添加了中间件代码:importVaporimportHTTPfinalclassVersionMiddleware:Middleware{funcrespond(torequest:Request,chainingTonext:Responder)throws->Response{letresponse=trynext.respond(to:request)response.headers["Version"]="APIv1.0"print("notprinting")returnres

swift - 我应该在 Vapor 项目中的什么地方添加自己的 Markdown 文件?

我想添加我自己的Markdown文件,一个名为profile.md的文件。但是,我不知道应该在我的Vapor项目中的什么地方添加该文件,该项目是在Xcode中开发的。我尝试将它添加到Sources/或者只是根目录,但是它不能被Bundle.main.url(forResource:)函数搜索,比如:guardleturl=Bundle.main.url(forResource:"profile",withExtension:".md")else{...}此外,我发现我已经在CopyBundleResources选项卡下添加了它。在普通应用程序(适用于iOS和macOS)中,上述功能正常

ios - 使用 Swift iOS 使用 RS256 或 RS512 验证 JWT token

我正在使用Swift构建一个iOS应用程序,它需要能够使用RS256或RS512的公钥证书验证JWTtoken签名。我一直在努力寻找支持此类功能的库,但在实现我发现的功能时遇到了问题。因此,我的问题是,为SwiftiOS应用程序实现此类功能的推荐方法是什么?理想的场景是能够使用JWT.io上公认的框架之一。JWT.io上唯一支持RS256或RS512的Swift库是以下库:https://github.com/vapor/jwt这个库支持的功能是理想的,但它需要通过Swift包管理器实现,并且是使用Vapor构建的。iOS目前不支持Swift包管理器,但我读到有一些变通方法可以让swi

json - Vapor 3 内容到 JSON 到字符串

我正在编写一个Vapor3项目,它以键值对的形式写入FoundationDB数据库。我有以下代码,它使用一个名为Country的结构来扩展内容。我想将国家/地区数据保存为JSON字符串,然后将其转换为要保存的字节。funccreateCountry(req:Request,country:Country)throws->Future{returntryreq.content.decode(Country.self).map(to:Country.self){countryinletdbConnection=FDBConnector()letCountryKey=Tuple("iVend

swift - 我如何处理 Vapor 3 中的密码散列加盐?

我正在构建一个基本的身份验证设置,类似于它在Vapor的auth-template模板(来自here)中的使用方式。我已按照与模板中相同的方式设置所有内容。不过,我想加盐。我可以在创建时为用户生成盐:staticfunccreate(_req:Request,newUserRequestuser:CreateUserRequest)throws->Future{returnUser.query(on:req).filter(\.username==user.username).first().flatMap{existingUseringuardexistingUser==nilels

swift - 如何使用 Vapor 响应图像?

我只想有一个ControllerAction,基本上与直接通过Public/文件夹访问图像相同。不同之处在于路线可以是您想要的任何东西,返回的图像将是在Controller函数内部确定的图像。但是如何创建适当的响应呢?我的方法是这样的:importVaporfinalclassImageController{funcread(_req:Request)throws->Future{letdirectory=DirectoryConfig.detect()letpromise=req.eventLoop.newPromise(Data.self)req.eventLoop.execute

swift - 使用 vapor 设置 SSL

我有这样的配置{"default":{"port":"443","host":"example.com","securityLayer":"tls","tls":{"certificates":"files","certificateFile":"/etc/letsencrypt/live/example.com/fullchain.pem","privateKeyFile":"/etc/letsencrypt/live/example.com/privkey.pem"}}}在drop启动时,它会打印出这条控制台消息:NoTLSsignaturesupplied,defaultingt

swift - 尝试使用 CLI 将 Vapor 应用程序推送到 Heroku 失败

我有一个Vapor应用程序,我想将其推送到Heroku。我使用vaporherokuinit来初始化Heroku项目。现在它在Heroku上,我希望能够使用vaporherokupush将更改推送到Heroku。但每次我从VaporCLI运行该命令时,我都会得到以下信息:Error:spawnProcess谁能告诉我为什么这可能会失败,或者能为我指明正确的方向? 最佳答案 这个问题最近开始出现,我们不确定它是从哪里来的。同时,您可以关注这个问题:https://github.com/vapor/toolbox/issues/108解

swift - Steam 2.0 : Where is the SQLite stored?

我正在使用Vapor和内置的SQLite3驱动程序:https://github.com/vapor/sqlite所以我在fluent.json中将"driver":"memory"更改为"driver":"sqlite"并创建了sqlite.json:{"path":"data.sqlite"}但即使我使用Spotlight搜索,我也找不到任何名为data.sqlite的文件。我也不能使用sqlite-provider,它在我发现的许多教程中都很流行,因为它与Vapor2不兼容:无法生成Xcode项目:swift-package:error:unsatisfiable但尽管如此,数据

swift - Vapor 一次上传多个文件

我想在一个POST请求中上传多张图片。目前,我的请求中与文件上传相关的部分正在获取一个文件,如下所示:returntryreq.content.decode(File.self).flatMap(to:Image.self){(file)intryfile.data.write(to:URL(fileURLWithPath:DirectoryConfig.detect().workDir+localImageStorage+file.filename))returntryImage(userID:user.requireID(),url:imageStorage+file.filena