it-swarm.com.de

Wie kann ich ein Cookie setzen, um zu reagieren?

Ursprünglich benutze ich die folgende Ajax, um Cookies zu setzen.

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)
 })
}

Jetzt möchte ich das Cookie mit der Funktion zum Hinzufügen von Cookies des Servlets setzen. Aber ich weiß nicht, wie ich meinen Zweck erreichen soll.

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);

Was muss ich auf die Reaktionsseite schreiben, um die Sitzungszeit des Cookies zu erhalten, um die Cookie-Zeitbegrenzung zu verlängern?

36
OPfan

Es scheint, dass die zuvor im Paket react-cookie Npm vorhandene Funktionalität nach universal-cookie Verschoben wurde. Das relevante Beispiel aus dem niversal-Cookie-Repository now ist:

import Cookies from 'universal-cookie';
const cookies = new Cookies();
cookies.set('myCat', 'Pacman', { path: '/' });
console.log(cookies.get('myCat')); // Pacman
86
speckledcarp

Ich setze Cookies in React mithilfe der React-Cookie-Bibliothek. Sie enthält Optionen, die Sie zum Festlegen der Ablaufzeit übergeben können.

Probieren Sie es aus hier

Ein Beispiel für die Verwendung in Ihrem Fall:

import cookie from "react-cookie";

setCookie() => {
  let d = new Date();
  d.setTime(d.getTime() + (minutes*60*1000));

  cookie.set("onboarded", true, {path: "/", expires: d});
};
10
bdougie

Verwenden Sie beispielsweise Vanilla js

document.cookie = `referral_key=hello;max-age=604800;domain=example.com`

Lesen Sie mehr unter: https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie

5
Smakosh

Eine sehr einfache Lösung ist die Verwendung des Pakets sfcookies. Sie müssen es nur mit npm installieren, zum Beispiel: npm install sfcookies --save

Dann importieren Sie in die Datei:

import { bake_cookie, read_cookie, delete_cookie } from 'sfcookies';

erstelle einen Cookie-Schlüssel:

const cookie_key = 'namedOFCookie';

bei Ihrer Übermittlungsfunktion erstellen Sie das Cookie, indem Sie Daten wie folgt darauf speichern:

bake_cookie(cookie_key, 'test');

zum Löschen einfach machen

delete_cookie(cookie_key);

und um es zu lesen:

read_cookie(cookie_key)

Einfach und leicht zu bedienen.

5
Periback

Wenn Sie fetch Ihre [~ # ~] url [~ # ~], React native setzt die Plätzchen.

Um Cookies anzuzeigen und sicherzustellen, dass Sie das Paket https://www.npmjs.com/package/react-native-cookie verwenden können. Ich war sehr zufrieden damit.

Natürlich macht Fetch das, wenn er es tut

credentials: "include",// or "some-Origin"

Nun, aber wie man es benutzt ????

--- nach der Installation dieses Pakets ----

für get cookies:

import Cookie from 'react-native-cookie';

Cookie.get('url').then((cookie) => {
   console.log(cookie);
});

für gesetzte Kekse:

Cookie.set('url', 'name of cookies', 'value  of cookies');

nur das ????

Aber wenn Sie ein paar wollen, können Sie es tun

1- wie verschachtelt:

Cookie.set('url', 'name of cookies 1', 'value  of cookies 1')
        .then(() => {
            Cookie.set('url', 'name of cookies 2', 'value  of cookies 2')
            .then(() => {
                ...
            })
        })

2- wie wieder zusammen

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');
....

Wenn Sie nun sicherstellen möchten, dass die Cookies eingerichtet sind, können Sie sie zur Sicherheit erneut abrufen.

Cookie.get('url').then((cookie) => {
  console.log(cookie);
});
2

Sie können die Standardmethode für das Setzen von Javascript-Cookies verwenden. das funktioniert perfekt.

createCookieInHour: (cookieName, cookieValue, hourToExpire) => {
    let date = new Date();
    date.setTime(date.getTime()+(hourToExpire*60*60*1000));
    document.cookie = cookieName + " = " + cookieValue + "; expires = " +date.toGMTString();
},

aufruf Java Skripte Funktion in der Reaktionsmethode wie folgt,

createCookieInHour('cookieName', 'cookieValue', 5);

und Sie können auf folgende Weise Cookies anzeigen.

let cookie = document.cookie.split(';');
console.log('cookie : ', cookie);

weitere Informationen finden Sie im folgenden Dokument - URL

1
Thilina Sampath