mirror of https://github.com/rwf2/Rocket.git
Explicitly delete flash cookie so that path is set.
This commit is contained in:
parent
7d2695d19f
commit
1e1ff3bd23
|
@ -1,6 +1,6 @@
|
||||||
use std::convert::AsRef;
|
use std::convert::AsRef;
|
||||||
|
|
||||||
use time::Duration;
|
use time::{self, Duration};
|
||||||
|
|
||||||
use outcome::IntoOutcome;
|
use outcome::IntoOutcome;
|
||||||
use response::{Response, Responder};
|
use response::{Response, Responder};
|
||||||
|
@ -221,11 +221,19 @@ impl<'a, 'r> FromRequest<'a, 'r> for Flash<()> {
|
||||||
fn from_request(request: &'a Request<'r>) -> request::Outcome<Self, Self::Error> {
|
fn from_request(request: &'a Request<'r>) -> request::Outcome<Self, Self::Error> {
|
||||||
trace_!("Flash: attemping to retrieve message.");
|
trace_!("Flash: attemping to retrieve message.");
|
||||||
let r = request.cookies().find(FLASH_COOKIE_NAME).ok_or(()).and_then(|cookie| {
|
let r = request.cookies().find(FLASH_COOKIE_NAME).ok_or(()).and_then(|cookie| {
|
||||||
// Clear the flash message.
|
|
||||||
trace_!("Flash: retrieving message: {:?}", cookie);
|
trace_!("Flash: retrieving message: {:?}", cookie);
|
||||||
request.cookies().remove(FLASH_COOKIE_NAME);
|
|
||||||
|
|
||||||
// Parse the flash.
|
// Create the "deletion" cookie. We'll use it to clear the cookie.
|
||||||
|
let delete_cookie = Cookie::build(FLASH_COOKIE_NAME, "")
|
||||||
|
.max_age(Duration::seconds(0))
|
||||||
|
.expires(time::now() - Duration::days(365))
|
||||||
|
.path("/")
|
||||||
|
.finish();
|
||||||
|
|
||||||
|
// Add the deletion to the cookie jar, replacing the existing cookie.
|
||||||
|
request.cookies().add(delete_cookie);
|
||||||
|
|
||||||
|
// Parse the flash message.
|
||||||
let content = cookie.value();
|
let content = cookie.value();
|
||||||
let (len_str, rest) = match content.find(|c: char| !c.is_digit(10)) {
|
let (len_str, rest) = match content.find(|c: char| !c.is_digit(10)) {
|
||||||
Some(i) => (&content[..i], &content[i..]),
|
Some(i) => (&content[..i], &content[i..]),
|
||||||
|
|
Loading…
Reference in New Issue