JavaScript: plik cookie i mysz

Zdjęcie Sandy Millar na Unsplash

Termin pliki cookie HTTP został ukuty z plików cookie z wróżbą. Ciasteczka z wróżbą sięgają XIX wieku w Kioto w Japonii. Wewnątrz tych plików cookie osadzone są specjalne wiadomości. Lou Montulli , twórca stron internetowych, wykorzystał ten pomysł, a także metodę używaną przez systemy Unix do wysyłania małych plików danych z jednego programu do drugiego bez zmian, aby wymyślić pliki cookie HTTP.

W tym samouczku przyjrzymy się plikom cookie HTTP za pomocą JavaScript oraz temu, jak prowadziłem grę w myszy, próbując ustawić i odzyskać pliki cookie.

Oświadczenie o problemie

Mam żądanie get z funkcją wywołania zwrotnego zawierającą plik accessToken. Następnie chciałbym pobrać informacje o użytkowniku, używając accessTokenwygenerowanego, co zostanie wykonane za pomocą żądania pobrania.

callback: (response) => {
      // run fetch request to get user info
      let value = fetch(url + response.access_token, {
        method: 'GET',
        headers: {
          'Accept': 'application/json',
        },
      })
        .then(value => value.json())
        .then(text => console.log(text))
    }

.then(text => return text)

function callme() {
  callback: (response) => {
      ...
    }
}

let userinfo = callme();

Rozwiązanie Waniliowe Ciasteczka

Pierwszym rozwiązaniem, które przyszło mi do głowy, jest przechowywanie wartości jako pliku cookie. W ten sposób musimy po prostu pobrać wartość pliku cookie, gdy tylko jej potrzebujemy.

.then(text => document.cookie = "userinfo=" + JSON.stringify({ username: text.name, userimg: text.picture }))

let userinfo = document.cookie

Stało się to poważnym problemem, ponieważ muszę pobrać zarejestrowany plik cookie z innej strony. Funkcja przeładowania okna mogłaby to naprawić, gdybym budował z Vanilla JavaScript.

window.location.reload()

Rozwiązanie Reaguj na pliki cookie

Szukając rozwiązania, znalazłem idealną bibliotekę plików cookie React . Zgodnie z instrukcją doszedłem do tego:


(Pageone.jsx)

import React from "react";
import { useCookies } from "react-cookie";

export default function Pageone() {
  const [setCookie] = useCookies(["user"]);

  function myCookie() {
    setCookie("user", "blah", {
      path: "/"
    });
  }
  return (
    <button onClick={myCookie()}>Set Cookie</button>
  );
}
(Pagetwo.jsx)

import React from "react";
import { useCookies } from "react-cookie";

export default function Pagetwo() {
  const [cookies] = useCookies(["user"]);

  return (
    <div className="Pagetwo">
      <h1>React cookies</h1>
       {cookies.user && <p>{cookies.user}</p>}
      <button onClick={myCookie()}>Set Cookie</button>
    </div>
  );
}

Reaguj na ratunek

Implementacja procesu projektowego polega na pobraniu informacji o użytkowniku, zapisaniu ich i przejściu do nowej strony z zapisanymi informacjami. Dzięki React useNavigate, możemy przechowywać informacje o użytkowniku w stanie podczas nawigacji.

.then(text => navigate('/', { state:{username:text.name, userimg:text.picture}}))

import { useLocation } from 'react-router-dom';

const Sidebar = () => {
  const location = useLocation();
  // retrieve userimg
  let userimg = location.state.userimg;
  // retrieve username
  let username = location.state.username;
}

Pomyślnie zakończyłem pościg w kotka i myszkę za pomocą stanu React. W tym artykule zbadaliśmy, jak przekazywać informacje między komponentami Reacta. Najpierw zbadaliśmy waniliowe pliki cookie JavaScript. Następnie wykorzystaliśmy bibliotekę ciasteczek React, a na końcu stan React.

Suggested posts

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.

Moje najczęściej używane zasoby dotyczące kodowania

Moje najczęściej używane zasoby dotyczące kodowania

W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.

Related posts

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Przejście do nowej kariery może być niezwykle trudne, jeśli spróbujesz zrobić to sam. Ważne jest, aby znaleźć odpowiedzialnych partnerów, którzy są na tym samym poziomie uczenia się co ty, którzy mają podobne cele, wytrwałość i motywację.

Wyszukiwanie informacji o nazwach domen

Fragment książki Small, Sharp Software Tools autorstwa Briana P. Hogana

Wyszukiwanie informacji o nazwach domen

Kiedy wysyłasz żądanie do facebook.com, Twój komputer wyszukuje nazwę domeny, aby przetłumaczyć tę nazwę domeny na adres IP, aby komputer mógł nawiązać to połączenie.

Nauka w tygodniu pracy ma większe znaczenie niż myślisz

Nauka w tygodniu pracy ma większe znaczenie niż myślisz

Często mamy trudności z wdrożeniem tego, co wiemy, że jest dla nas dobre. Od mówienia drugiej osobie, że ją kochamy, po pamiętanie, by mówić jak pirat, zawsze znajdą się tacy, którzy twierdzą, że dzień, tydzień lub miesiąc wydarzeń nie jest potrzebny, ponieważ już to robią.

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Aby uniknąć niejasności, zostaną użyte następujące terminy; uwierzytelniający; Telefon komórkowy używany do tworzenia Witryny logowania; Witryna internetowa lub aplikacja, z której korzysta użytkownik, aby dokonać żądania logowania do Usługi; Sprzedawca świadczący daną usługę np