Also, I how do I give the user the requested page when the if statement is not satisfied?
Here is what I have so far:
object AuthFilter extends EssentialFilter {
def apply(next: EssentialAction) = new EssentialAction {
def apply(request: RequestHeader) = {
if(request.session.get("auth").isEmpty && !request.path.contains("/login")){
//redirect to login page.
} else {
//show requested page.
next(request) //is this correct?
}
}
}
}
Why not extends Filter
instead of EssentialFilter
?
object AuthFilter extends Filter {
def apply(next: (RequestHeader) => Future[SimpleResult])(request: RequestHeader): Future[SimpleResult] = {
if(request.session.get("auth").isEmpty && !request.path.contains("/login")){
Future.successful(Ok(views.html.yourLoginPage()))
} else {
next(request)
}
}
}