或者,我使用以下ajax来设置cookie.
function setCookieAjax(){
$.ajax({
url: `${Web_Servlet}/setCookie`,
contentType: 'application/x-www-form-urlencoded;charset=utf-8',
headers: { 'Access-Control-Allow-Origin': '*',
'username': getCookie("username"),
'session': getCookie("session")
},
type: 'GET',
success: function(response){
setCookie("username", response.name, 30);
setCookie("session", response.session, 30);}
})
}
function setCookie(cname, cvalue, minutes) {
var d = new Date();
d.setTime(d.getTime() + (minutes*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
export const getUserName = (component) => {
setCookieAjax()
$.ajax({
url: `${Web_Servlet}/displayHeaderUserName`,
contentType: 'application/x-www-form-urlencoded;charset=utf-8',
headers: { 'Access-Control-Allow-Origin': '*',
'username': getCookie("username"),
'session': getCookie("session")
},
type: 'GET',
success: function(response){
component.setState({
usernameDisplay: response.message
})
}.bind(component)
})
}
Run Code Online (Sandbox Code Playgroud)
现在,我想使用servlet的添加cookie函数来设置cookie.但我不知道如何实现我的目的.
Cookie loginCookie = new Cookie("user",user); //setting cookie to expiry in 30 mins
loginCookie.setMaxAge(30*60);
loginCookie.setDomain("localhost:4480");
loginCookie.setPath("/");
response.addCookie(loginCookie);
Run Code Online (Sandbox Code Playgroud)
为了延长cookie的时间限制,我应该在反应方面写什么来接收cookie的会话时间?
spe*_*arp 95
似乎先前存在于react-cookie
npm包中的功能已移至universal-cookie
.现在,通用cookie存储库的相关示例是:
import Cookies from 'universal-cookie';
const cookies = new Cookies();
cookies.set('myCat', 'Pacman', { path: '/' });
console.log(cookies.get('myCat')); // Pacman
Run Code Online (Sandbox Code Playgroud)
Ole*_*ets 10
小更新。有一个钩子可用于 react-cookie
1)首先,安装依赖(只是为了说明)
yarn add react-cookie
Run Code Online (Sandbox Code Playgroud)
或者
npm install react-cookie
Run Code Online (Sandbox Code Playgroud)
2)我的使用示例:
// SignInComponent.js
import { useCookies } from 'react-cookie'
const SignInComponent = () => {
// ...
const [cookies, setCookie] = useCookies(['access_token', 'refresh_token'])
async function onSubmit(values) {
const response = await getOauthResponse(values);
let expires = new Date()
expires.setTime(expires.getTime() + (response.data.expires_in * 1000))
setCookie('access_token', response.data.access_token, { path: '/', expires})
setCookie('refresh_token', response.data.refresh_token, {path: '/', expires})
// ...
}
// next goes my sign-in form
}
Run Code Online (Sandbox Code Playgroud)
希望它有帮助。
非常感谢改进上述示例的建议!
我使用react-cookie库在React中设置了cookie,它有一些选项可以传递选项来设置到期时间.
检查出来这里
它适用于您的案例的一个示例:
import cookie from "react-cookie";
setCookie() => {
let d = new Date();
d.setTime(d.getTime() + (minutes*60*1000));
cookie.set("onboarded", true, {path: "/", expires: d});
};
Run Code Online (Sandbox Code Playgroud)
只需使用react-cookie
库:
npm install react-cookie
Run Code Online (Sandbox Code Playgroud)
索引.js:
import React from "react";
import ReactDOM from "react-dom";
import { CookiesProvider } from "react-cookie";
import App from "./App";
const rootElement = document.getElementById("root");
ReactDOM.render(
<CookiesProvider>
<App />
</CookiesProvider>,
rootElement
);
Run Code Online (Sandbox Code Playgroud)
用法:
反应挂钩:
import React from "react";
import { useCookies } from "react-cookie";
export default function App() {
const [cookies, setCookie] = useCookies(["user"]);
function handleCookie() {
setCookie("user", "gowtham", {
path: "/"
});
}
return (
<div className="App">
<h1>React cookies</h1>
<button onClick={handleCookie}>Set Cookie</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
class-based
成分:
import React, { Component } from "react";
import { instanceOf } from "prop-types";
import { withCookies, Cookies } from "react-cookie";
class App extends Component {
static propTypes = {
cookies: instanceOf(Cookies).isRequired
};
state = {
user: this.props.cookies.get("user") || ""
};
handleCookie = () => {
const { cookies } = this.props;
cookies.set("user", "gowtham", { path: "/" }); // setting the cookie
this.setState({ user: cookies.get("user") });
};
render() {
const { user } = this.state;
return (
<div className="App">
<h1>React cookies</h1>
{user && <p>{user}</p>}
<button onClick={this.handleCookie}>Set Cookie</button>
</div>
);
}
}
export default withCookies(App);
Run Code Online (Sandbox Code Playgroud)
默认情况下,当你取你的URL,阵营本地设置cookie。
要查看 cookie 并确保您可以使用https://www.npmjs.com/package/react-native-cookie包。我曾经对它非常满意。
当然,提供时获取 凭据配置会执行此操作
credentials: "include", // or "same-origin" or "omit"
Run Code Online (Sandbox Code Playgroud)
嗯,但是如何使用它
--- 安装此包后 ----
获取 cookie:
import Cookie from 'react-native-cookie';
Cookie.get('url').then((cookie) => {
console.log(cookie);
});
Run Code Online (Sandbox Code Playgroud)
设置cookies:
Cookie.set('url', 'name of cookies', 'value of cookies');
Run Code Online (Sandbox Code Playgroud)
只有这个
但如果你想要一些,你可以做到
1-作为嵌套:
Cookie.set('url', 'name of cookies 1', 'value of cookies 1')
.then(() => {
Cookie.set('url', 'name of cookies 2', 'value of cookies 2')
.then(() => {
...
})
})
Run Code Online (Sandbox Code Playgroud)
2- 回到一起
Cookie.set('url', 'name of cookies 1', 'value of cookies 1');
Cookie.set('url', 'name of cookies 2', 'value of cookies 2');
Cookie.set('url', 'name of cookies 3', 'value of cookies 3');
....
Run Code Online (Sandbox Code Playgroud)
现在,如果您想确保设置了 cookie,您可以再次获取以确保。
Cookie.get('url').then((cookie) => {
console.log(cookie);
});
Run Code Online (Sandbox Code Playgroud)
使用Vanilla JS,示例
document.cookie = `referral_key=hello;max-age=604800;domain=example.com`
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问:https : //developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie
您可以使用默认的 javascript cookie 设置方法。这工作完美。
createCookieInHour: (cookieName, cookieValue, hourToExpire) => {
let date = new Date();
date.setTime(date.getTime()+(hourToExpire*60*60*1000));
document.cookie = cookieName + " = " + cookieValue + "; expires = " +date.toGMTString();
},
Run Code Online (Sandbox Code Playgroud)
在react方法中调用java脚本函数如下,
createCookieInHour('cookieName', 'cookieValue', 5);
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方式查看 cookie。
let cookie = document.cookie.split(';');
console.log('cookie : ', cookie);
Run Code Online (Sandbox Code Playgroud)
请参阅以下文档了解更多信息 - URL
一个非常简单的解决方案是使用sfcookies包。您只需要使用npm进行安装即可,例如:npm install sfcookies --save
然后导入文件:
import { bake_cookie, read_cookie, delete_cookie } from 'sfcookies';
Run Code Online (Sandbox Code Playgroud)
创建一个cookie密钥:
const cookie_key = 'namedOFCookie';
Run Code Online (Sandbox Code Playgroud)
在您的Submit函数上,您可以通过如下方式保存cookie来创建cookie:
bake_cookie(cookie_key, 'test');
Run Code Online (Sandbox Code Playgroud)
删除它只是做
delete_cookie(cookie_key);
Run Code Online (Sandbox Code Playgroud)
并阅读:
read_cookie(cookie_key)
Run Code Online (Sandbox Code Playgroud)
简单易用。
小智 5
使用Js-cookie包
npm 我 js-cookie
import Cookies from 'js-cookie'
Cookies.set('auth', 'data')
Cookies.get('auth')
Run Code Online (Sandbox Code Playgroud)
这个 npm 包对我有用并且也很好
归档时间: |
|
查看次数: |
93447 次 |
最近记录: |