| @@ -10,5 +10,18 @@ | |||||
| <integer>0</integer> | <integer>0</integer> | ||||
| </dict> | </dict> | ||||
| </dict> | </dict> | ||||
| <key>SuppressBuildableAutocreation</key> | |||||
| <dict> | |||||
| <key>App</key> | |||||
| <dict> | |||||
| <key>primary</key> | |||||
| <true/> | |||||
| </dict> | |||||
| <key>AppTests</key> | |||||
| <dict> | |||||
| <key>primary</key> | |||||
| <true/> | |||||
| </dict> | |||||
| </dict> | |||||
| </dict> | </dict> | ||||
| </plist> | </plist> | ||||
| @@ -1,4 +1,4 @@ | |||||
| // swift-tools-version:5.8 | |||||
| // swift-tools-version:6.4.1 | |||||
| import PackageDescription | import PackageDescription | ||||
| let package = Package( | let package = Package( | ||||
| @@ -41,10 +41,14 @@ extension Token { | |||||
| extension Token: ModelTokenAuthenticatable { | extension Token: ModelTokenAuthenticatable { | ||||
| typealias User = App.User | typealias User = App.User | ||||
| static let valueKey = \Token.$value | |||||
| static let userKey = \Token.$user | |||||
| var isValid: Bool { | |||||
| true | |||||
| static var valueKey: KeyPath<Token, Field<String>> { | |||||
| return \Token.$value | |||||
| } | |||||
| static var userKey: KeyPath<Token, Parent<User>> { | |||||
| return \Token.$user | |||||
| } | } | ||||
| var isValid: Bool { true } | |||||
| } | } | ||||
| @@ -49,15 +49,10 @@ extension User { | |||||
| } | } | ||||
| } | } | ||||
| extension User: ModelAuthenticatable { | extension User: ModelAuthenticatable { | ||||
| static let usernameKey = \User.$username | |||||
| static let passwordHashKey = \User.$passwordHash | |||||
| func verify(password: String) throws -> Bool { | |||||
| try Bcrypt.verify(password, created: self.passwordHash) | |||||
| } | |||||
| } | |||||
| static var usernameKey: KeyPath<User, Field<String>> { \User.$username } | |||||
| static var passwordHashKey: KeyPath<User, Field<String>> { \User.$passwordHash } | |||||
| func verify(password: String) throws -> Bool { | |||||
| try Bcrypt.verify(password, created: self.passwordHash) | |||||
| } | |||||
| } | |||||