From e1c683d5823ff422e5fbb428fd52b5102cae2893 Mon Sep 17 00:00:00 2001 From: rpm-mcarman <65228808+rpm-mcarman@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:52:58 -0400 Subject: [PATCH] Token auth implementation --- .../UserInterfaceState.xcuserstate | Bin 132833 -> 135010 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 18 +++++ .../Controllers/FuelEntryV2Controller.swift | 12 ++-- Sources/App/Controllers/UserController.swift | 62 ++++-------------- Sources/App/Migrations/CreateToken.swift | 20 ++++++ Sources/App/Migrations/CreateUser.swift | 42 ++++++++++++ Sources/App/Models/Token.swift | 42 +++++------- Sources/App/Models/User.swift | 57 +++++++--------- Sources/App/configure.swift | 4 ++ 9 files changed, 143 insertions(+), 114 deletions(-) diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/michielcarman.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/michielcarman.xcuserdatad/UserInterfaceState.xcuserstate index 4e71f8615dc9808320c801da2c22bfe07a39d6f4..3aed83f400df48854ec5122e3324ae7925200cfe 100644 GIT binary patch literal 135010 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 literal 132833 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 + + + + + + diff --git a/Sources/App/Controllers/FuelEntryV2Controller.swift b/Sources/App/Controllers/FuelEntryV2Controller.swift index 4267d0f..b97c86f 100644 --- a/Sources/App/Controllers/FuelEntryV2Controller.swift +++ b/Sources/App/Controllers/FuelEntryV2Controller.swift @@ -11,14 +11,18 @@ import FluentKit struct FuelEntryV2Controller: RouteCollection { func boot(routes: RoutesBuilder) throws { let fuelEntries = routes.grouped("fuel_entries") - fuelEntries.get(use: index) - fuelEntries.get("test", use: filtered) + let tokenAuthMiddleware = Token.authenticator() + let guardMiddleware = User.guardMiddleware() + let tokenAuthGroup = fuelEntries.grouped(tokenAuthMiddleware, guardMiddleware) + tokenAuthGroup.get(use: index) + tokenAuthGroup.get("test", use: filtered) // fuelEntries.get("with-images", use: getAllEntriesWithImages) - fuelEntries.post(use: create) + tokenAuthGroup.post(use: create) // fuelEntries.post("upload-image", use: uploadImage) - fuelEntries.group(":fuelEntryID") { fuelEntry in + tokenAuthGroup.group(":fuelEntryID") { fuelEntry in fuelEntry.delete(use: delete) } + } func index(req: Request) async throws -> [FuelEntry] { diff --git a/Sources/App/Controllers/UserController.swift b/Sources/App/Controllers/UserController.swift index 1ede7b2..29cf9bf 100644 --- a/Sources/App/Controllers/UserController.swift +++ b/Sources/App/Controllers/UserController.swift @@ -26,57 +26,17 @@ extension UserSignup: Validatable { } struct UserController: RouteCollection { - func boot(routes: RoutesBuilder) throws { - let usersRoute = routes.grouped("users") - usersRoute.post("signup", use: create) - - let tokenProtected = usersRoute.grouped(Token.authenticator()) - tokenProtected.get("me", use: getMyOwnUser) - - let passwordProtected = usersRoute.grouped(User.authenticator()) - passwordProtected.post("login", use: login) - } - - fileprivate func create(req: Request) throws -> EventLoopFuture { - try UserSignup.validate(content: req) - let userSignup = try req.content.decode(UserSignup.self) - let user = try User.create(from: userSignup) - var token: Token! - - return checkIfUserExists(userSignup.username, req: req).flatMap { exists in - guard !exists else { - return req.eventLoop.future(error: UserError.usernameTaken) - } - - return user.save(on: req.db) - }.flatMap { - guard let newToken = try? user.createToken(source: .signup) else { - return req.eventLoop.future(error: Abort(.internalServerError)) - } - token = newToken - return token.save(on: req.db) - }.flatMapThrowing { - NewSession(token: token.value, user: try user.asPublic()) + func boot(routes: any RoutesBuilder) throws { + let users = routes.grouped("users") + users.post(use: create) } - } - - fileprivate func login(req: Request) throws -> EventLoopFuture { - let user = try req.auth.require(User.self) - let token = try user.createToken(source: .login) - - return token.save(on: req.db).flatMapThrowing { - NewSession(token: token.value, user: try user.asPublic()) + @Sendable + func create(req: Request) async throws -> Response{ + let user = try req.content.decode(User.self) + user.passwordHash = try Bcrypt.hash(user.passwordHash) + try await user.save(on: req.db) + let token = try Token.generate(for: user) + try await token.save(on: req.db) + return try await token.encodeResponse(for: req) } - } - - func getMyOwnUser(req: Request) throws -> User.Public { - try req.auth.require(User.self).asPublic() - } - - private func checkIfUserExists(_ username: String, req: Request) -> EventLoopFuture { - User.query(on: req.db) - .filter(\.$username == username) - .first() - .map { $0 != nil } - } } diff --git a/Sources/App/Migrations/CreateToken.swift b/Sources/App/Migrations/CreateToken.swift index 3f7228f..13c7a22 100644 --- a/Sources/App/Migrations/CreateToken.swift +++ b/Sources/App/Migrations/CreateToken.swift @@ -29,3 +29,23 @@ struct CreateTokens: Migration { database.schema(Token.schema).delete() } } +struct UpdateTokens1: Migration { + func prepare(on database: Database) -> EventLoopFuture { + // 2 + database.schema(Token.schema) + // 3 + .deleteField("source") + .deleteField("created_at") + .deleteField("expires_at") + .update() + } + + // 5 + func revert(on database: Database) -> EventLoopFuture { + database.schema(Token.schema) + .field("source", .int, .required) + .field("created_at", .datetime, .required) + .field("expires_at", .datetime) + .update() + } +} diff --git a/Sources/App/Migrations/CreateUser.swift b/Sources/App/Migrations/CreateUser.swift index bd3990b..b718bc2 100644 --- a/Sources/App/Migrations/CreateUser.swift +++ b/Sources/App/Migrations/CreateUser.swift @@ -25,3 +25,45 @@ struct CreateUser: AsyncMigration { try await database.schema(User.schema).delete() } } + +struct UpdateUser1: AsyncMigration{ + func prepare(on database: Database) async throws { + try await database.schema(User.schema) + .deleteField("created_at") + .deleteField("updated_at") + .update() + } + + func revert(on database: Database) async throws { + try await database.schema(User.schema) + .field("created_at", .datetime, .required) + .field("updated_at", .datetime, .required) + .update() + } +} +struct UpdateUser2_AddTokenfield: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema(User.schema) + .field("token", .string) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema(User.schema) + .deleteField("token") + .update() + } +} +struct UpdateUser3_RemoveTokenfield: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema(User.schema) + .deleteField("token") + .update() + } + + func revert(on database: Database) async throws { + try await database.schema(User.schema) + .field("token", .string) + .update() + } +} diff --git a/Sources/App/Models/Token.swift b/Sources/App/Models/Token.swift index 8b7e109..6b8ce82 100644 --- a/Sources/App/Models/Token.swift +++ b/Sources/App/Models/Token.swift @@ -8,12 +8,9 @@ import Vapor import Fluent -enum SessionSource: Int, Content { - case signup - case login -} -final class Token: Model { + +final class Token: Model, Content, @unchecked Sendable { static let schema = "token" @ID() @@ -25,36 +22,29 @@ final class Token: Model { @Field(key: "value") var value: String - @Field(key: "source") - var source: SessionSource - - @Field(key: "expires_at") - var expiresAt: Date? - - @Timestamp(key: "created_at", on: .create) - var createdAt: Date? init() {} - init(id: UUID? = nil, userId: User.IDValue, token: String, - source: SessionSource, expiresAt: Date?) { + init(id: UUID? = nil, userId: User.IDValue, token: String) { self.id = id self.$user.id = userId self.value = token - self.source = source - self.expiresAt = expiresAt } } -extension Token: ModelTokenAuthenticatable { - static let valueKey = \Token.$value - static let userKey = \Token.$user - - var isValid: Bool { - guard let expiryDate = expiresAt else { - return true +extension Token { + static func generate(for user: User) throws -> Token { + let random = [UInt8].random(count: 32).base64 + return try Token( userId: user.requireID(), token: random) } +} + +extension Token: ModelTokenAuthenticatable { + typealias User = App.User + static let valueKey = \Token.$value + static let userKey = \Token.$user - return expiryDate > Date() - } + var isValid: Bool { + true + } } diff --git a/Sources/App/Models/User.swift b/Sources/App/Models/User.swift index be1cbf2..5452f8d 100644 --- a/Sources/App/Models/User.swift +++ b/Sources/App/Models/User.swift @@ -8,16 +8,17 @@ import Fluent import Vapor -final class User: Model { - struct Public: Content { - let username: String - let id: UUID - let createdAt: Date? - let updatedAt: Date? - } - +final class User: Model, Content { static let schema = "user" - + final class Public: Content { + var id: UUID? + var username: String + + init(id: UUID?, username: String) { + self.id = id + self.username = username + } + } @ID() var id: UUID? @@ -26,12 +27,13 @@ final class User: Model { @Field(key: "password_hash") var passwordHash: String + - @Timestamp(key: "created_at", on: .create) - var createdAt: Date? - - @Timestamp(key: "updated_at", on: .update) - var updatedAt: Date? +// @Timestamp(key: "created_at", on: .create) +// var createdAt: Date? +// +// @Timestamp(key: "updated_at", on: .update) +// var updatedAt: Date? init() {} @@ -41,27 +43,11 @@ final class User: Model { self.passwordHash = passwordHash } } - extension User { - static func create(from userSignup: UserSignup) throws -> User { - User(username: userSignup.username, passwordHash: try Bcrypt.hash(userSignup.password)) - } - - func createToken(source: SessionSource) throws -> Token { - let calendar = Calendar(identifier: .gregorian) - let expiryDate = calendar.date(byAdding: .year, value: 1, to: Date()) - return try Token(userId: requireID(), - token: [UInt8].random(count: 16).base64, source: source, expiresAt: expiryDate) - } - - func asPublic() throws -> Public { - Public(username: username, - id: try requireID(), - createdAt: createdAt, - updatedAt: updatedAt) - } + func convertToPublic() -> User.Public { + return User.Public(id: id, username: username) + } } - extension User: ModelAuthenticatable { static let usernameKey = \User.$username static let passwordHashKey = \User.$passwordHash @@ -70,3 +56,8 @@ extension User: ModelAuthenticatable { try Bcrypt.verify(password, created: self.passwordHash) } } + + + + + diff --git a/Sources/App/configure.swift b/Sources/App/configure.swift index 177900a..fdf81e7 100755 --- a/Sources/App/configure.swift +++ b/Sources/App/configure.swift @@ -19,6 +19,10 @@ public func configure(_ app: Application) async throws { app.migrations.add(AddDownloadedBool()) app.migrations.add(CreateUser()) app.migrations.add(CreateTokens()) + app.migrations.add(UpdateUser1()) + app.migrations.add(UpdateTokens1()) + app.migrations.add(UpdateUser2_AddTokenfield()) + app.migrations.add(UpdateUser3_RemoveTokenfield()) try await app.autoMigrate().get() // register routes