Naufalirsd / Portal-Siswa-By-Naufalirsd

0 stars 0 forks source link

Menemukan masalah di login: ketika centang keep login, dan berhasil login. maka tidak masuk halaman dashboard. tetap dihalaman login #5

Closed Ariska138 closed 11 months ago

Ariska138 commented 11 months ago

terdapat kesalahan disini

  const responseData = await res.json();

            if (res.ok) {
                if (isKeepLogin) {
                    localStorage.setItem("token", responseData.token);
                } else {
                    sessionStorage.setItem("token", responseData.token);
                }

                alert("Sukses login");
                router.push("/dashboard");
            } else {
                setError(responseData.message);
            }

setelah berhasil login, sudah dibenar diarahkan ke dasboard. pada bagian dashboard

let myToken = '';
        if (localStorage.getItem('keepLogin') === 'true') {
          myToken = getCookie('token');
        } else {
          myToken = sessionStorage.getItem('token');
        }

dari dashboard langsung diarahkan login kembali karena localstorage untuk data keepLogin tidak ada. sehingga dianggap tidak memiliki token. jadi langsung diarahkan ke halaman login kembali.

solusi. bagian login untuk menyimpan data keepLogin apakah masuk ke cookie atau ke session

...
const responseData = await res.json();

      localStorage.setItem('keepLogin', responseData.isKeepLogin);

      if (res.ok) {
        if (!responseData.isKeepLogin) {
          sessionStorage.setItem('token', responseData.token);
        }

        alert('Sukses login');
        router.push('/dashboard');
      } else {
        setError(responseData.message);
      }
...

kemudian dipastikan di API login mengirimkan isKeepLogin. return res.status(200).json({ token, isKeepLogin: !!isKeepLogin }); yg dimana is keep login didapatkan dari const { nis, password, isKeepLogin } = req.body;

silakan diperbaiki

Naufalirsd commented 11 months ago

@Ariska138 contoh5

Ariska138 commented 11 months ago

sip