setCookie

Signature

def setCookie(first: HttpCookie, more: HttpCookie*): Directive0

Description

Adds a header to the response to request the update of the cookie with the given name on the client.

Use the deleteCookie directive to delete a cookie.

Example

Scala
val route =
  setCookie(HttpCookie("userName", value = "paul")) {
    complete("The user was logged in")
  }

// tests:
Get("/") ~> route ~> check {
  responseAs[String] shouldEqual "The user was logged in"
  header[`Set-Cookie`] shouldEqual Some(`Set-Cookie`(HttpCookie("userName", value = "paul")))
}
Java
import static akka.http.javadsl.server.Directives.complete;
import static akka.http.javadsl.server.Directives.setCookie;

final Route route = setCookie(HttpCookie.create("userName", "paul"), () ->
  complete("The user was logged in")
);

// tests:
final HttpHeader expected = SetCookie.create(HttpCookie.create("userName", "paul"));

testRoute(route).run(HttpRequest.GET("/"))
  .assertEntity("The user was logged in")
  .assertHeaderExists(expected);
Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.