Tajuk baharu: Kira dan kemas kini baki masa tamat tempoh token
P粉463840170
P粉463840170 2023-08-26 23:13:42
0
1
534
<p>Saya perlu memuat semula token Spotify setiap jam dalam aplikasi React (Token Spotify sah selama 1 jam). Saya tahu kaedah berikut menggunakan <strong>useEffect</strong> dan <strong>setInteral</strong></p> <pre class="brush:php;toolbar:false;">useEffect(() ==> { selang const = setInterval(() => { //Panggil logik API }, 3600); return () => clearInterval(selang); }, [pengguna])</pre> <p>Tetapi apabila apl ditutup dan dibuka semula, ia membuat permintaan baharu sekali lagi untuk mendapatkan token (walaupun token lama masih sah). Jadi saya cuba melaksanakan fungsi yang memerlukan panggilan API untuk mendapatkan token baharu berdasarkan baki masa tamat tempoh. Bagaimana untuk melaksanakan fungsi ini. </p> <p>Saya juga mencipta fungsi yang mengira baki masa tamat tempoh selepas masa berlalu</p> <pre class="brush:php;toolbar:false;">export const calculateRemainingExpirationTime = expirationTime => const currentTime = new Date().getTime(); const newExpirationTime = new Date(expirationTime).getTime() const remainingTime = newExpirationTime - currentTime kembali bakiMasa; //dalam milisaat };</pre> <p>Jadi apabila halaman dimuat semula, saya perlu mengira baki masa tamat tempoh dan kemudian memanggil API berdasarkan masa itu dan kemudian memanggil API setiap 1 jam untuk mendapatkan token baharu. </p> <p><strong>Saya perlu melaksanakan fungsi berikut</strong></p> <ol> <li>Apabila halaman dimuat semula, kira baki masa dan panggil API berdasarkan masa yang tinggal</li> <li>Memanggil API setiap jam</li> </ol><p><br /></p>
P粉463840170
P粉463840170

membalas semua(1)
P粉805535434

Anda perlu berjimat 过期时间持久化到localStorage或使用Redux-persist

//此间隔仅在用户未关闭应用程序时执行
useEffect(() => {
  const interval = setInterval(() => {
    //调用api逻辑
    //将过期时间写入本地存储
     localStorage.setItem("expir",value)
  }, 3600);
  return () => clearInterval(interval); 
}, [user])
//获取在本地存储中写入/存储的过期时间

 React.useEffect(() => {
    let mounted = true;
    const getToken = () => {
      if (mounted) {
        const expirationtime = localStorage.getItem("expir");
        if (new Date() > new Date(Number(expirationtime))) {
          // 过期,获取新的令牌
        } else {
          // 存在的令牌
        }
      }
    };
    getToken();
    return () => {
      mounted = false;
    };
  }, [user]);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!