Guest User

Untitled

a guest
Jul 11th, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. import Vapor
  2. import Leaf
  3. import Fluent
  4. import Authentication
  5.  
  6. class WebsiteController: RouteCollection {
  7. func boot(router: Router) throws {
  8. let usersRoute = router.grouped("api", "users")
  9. usersRoute.post(LoginPostData.self, at: "login", use: loginPostHandler)
  10. }
  11. }
  12.  
  13. extension WebsiteController {
  14. func loginPostHandler(_ req: Request, userData: LoginPostData) throws -> Future<Response> {
  15. return User.authenticate(email: userData.email, password: userData.password, using: BCryptDigest(), on: req).map(to: Response.self) { user in
  16. guard let user = user else {
  17. return req.redirect(to: "/login")
  18. }
  19. try req.authenticateSession(user)
  20. return req.redirect(to: "/")
  21. }
  22. }
  23. }
  24.  
  25. struct LoginPostData: Content {
  26. let email: String
  27. let password: String
  28. }
Add Comment
Please, Sign In to add comment