我正在使用Server Side Swift Perfect框架进行Web服务。用于提供静态/动态内容的小胡子模块。
我想在成功验证后重定向到主页后实现登录功能。 “我到处搜索,但没有发现任何重定向到网址的功能”
这是我用来实现登录的代码 -
func signin(request:HTTPRequest, response: HTTPResponse) {
do {
var errorMessage:String;
var values = MustacheEvaluationContext.MapType()
let email:String = request.param(name: "email")!
let password:String = request.param(name: "password")!
print("Email -> \(email) & Password -> \(password)")
//After Authentication
//Yay I want to go back to home page.
mustacheRequest(request: request, response: response, handler: MustacheHelper(values: values), templatePath: webroot + "/index.html")
// Sadly this doesn't work, it just renders the homepage without changing the url or 'without redirecting'
response.completed()
} catch {
print(error)
logError(error.localizedDescription)
response.setBody(string: "An error occured \(error)").completed()
}
}
我认为公司PerfectlySoft忘记了这个功能。可能是我应该举报。有人知道什么可以解决我的问题吗?请告诉我。谢谢。
最后我自己想出了解决方案。 url重定向的此功能不包含在PerfectHTTP或PerfectHTTPServer模块本身中。您必须通过PerfectlySoft导入另一个模块 - > Perfect-OAuth2。 'redirect'方法直接在HTTPResponse扩展名下声明。或者你可以通过添加你自己这样做,
extension HTTPResponse {
public func redirect(path: String) {
self.status = .found
self.setHeader(.location, value: path)
self.completed()
}
}
我希望这有帮助!