我正在构建一个在客户端呈现的Rust+Yew应用程序。在文档中查找了一段时间后,我找不到处理cookie的正确方法。有人知道怎么做吗?
我想在cookie中设置一个身份验证令牌。
如果您只想在客户端处理cookie,请查看wasm cookie。图书馆有它的缺点,但在一开始有点挣扎之后,我认为它可以使用。
我个人发现,gloo存储提供了一种更直观的方式来处理客户端的用户信息,如果这是你的目标,如果你可以使用本地/会话存储而不是cookie存储(这有其缺点和好处(。
如果你想使用cookie来处理用户会话、身份验证等,如果你在后端使用actix
,我发现activx会话很容易使用。它们提供了一个开箱即用的复制粘贴示例,应该可以让您快速开始身份验证。
这应该可以工作,尽管它可能需要一些轻微的修改。。。
use web_sys::HtmlDocument;
use wasm_bindgen::JsCast;
pub fn set_cookie(name: &str, value: &str, expires: bool, path: &str) {
let cookie = format!("{}={}; expires={}; path={}", name, value, expires, path);
gloo::console::log!("cookie: {}", &cookie);
let document = gloo::utils::document().unchecked_into::<HtmlDocument>();
match document.set_cookie(cookie.as_str()){
Ok(_) => gloo::console::log!("setting cookie ...."),
Err(err) => gloo::console::error!("error setting cookie:{}", err)
}
}