Configure sessions and store them in databases

This commit is contained in:
2020-11-15 15:43:44 -08:00
parent 5d8cf17e22
commit c32880ee3e
5 changed files with 71 additions and 3 deletions

View File

@@ -1,6 +1,8 @@
import Fluent
import Vapor
import Leaf
import LeafErrorMiddleware
import FluentSQLiteDriver
// configures your application
public func configure(_ app: Application) throws {
@@ -8,8 +10,15 @@ public func configure(_ app: Application) throws {
// Serve files from /Public
app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))
app.sessions.use(.fluent)
app.sessions.configuration.cookieName = "statusboard-session"
app.sessions.configuration.cookieFactory = { sessionID in
.init(string: sessionID.string, expires: Date(timeIntervalSinceNow: 60*60*24*365), isSecure: true, isHTTPOnly: true, sameSite: HTTPCookies.SameSitePolicy.none)
}
app.middleware.use(app.sessions.middleware)
app.sessions.configuration.cookieName = "statusboard_session"
app.databases.use(.sqlite(.file("\(app.directory.resourcesDirectory)/db.sqlite")), as: .sqlite)
app.migrations.add(SessionRecord.migration)
// Configure Leaf
LeafOption.caching = app.environment.isRelease ? .default : .bypass