ユーザーはログアウトボタンをクリックすると自分自身でログアウトすることができますが、トークンが期限切れになった場合、アプリケーションではサーバーサイドとフロントエンドの両方でトークンが使用されるためログアウトできません。ユーザがログアウトボタンをクリックすると、トークンが有効であればサーバとブラウザの両方のトークンがクリアされます。ユーザーがログアウトせずにトークンの有効期限が切れても、ブラウザで消去されていない可能性があります。このような状況に対処するには、ユーザーが自分のアプリを訪れるたびにトークンの期限切れをチェックするにはどうすればよいですか?トークンが期限切れになっている場合は、ブラウザからトークンをクリアしますか?トークンの期限切れを確認してユーザーをログアウトするにはどうすればよいですか?
ユーザーがページを更新したり、別のページに切り替えるたびに、バックグラウンドで監視することを試みました。私はこれが効率的な方法だとは思わない。私はミドルウェアが機能していると思います。
function* loadInitialActions() {
var dateNow = new Date();
console.log(jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat);
const token =
JSON.parse(localStorage.getItem("user")) &&
JSON.parse(localStorage.getItem("user"))["token"];
if (
token &&
jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat
) {
yield put(LOGOUT_SUCCESS);
}
}
function* initialize() {
const watcher = yield fork(loadInitialActions);
yield take([INITIALIZE_ERROR, INITIALIZE_SUCCESS]);
yield cancel(watcher);
}
function* rootSaga() {
console.log("rootSaga");
yield takeLatest(INITIALIZE, initialize);
}
だから私の質問は、トークンは、ミドルウェアから有効期限が切れている場合、私はトークンの有効期限ロジックとログアウトユーザーを使用しない方法ですか?
これは私が探しているものです。それは私のために働いた。あなたの助けに感謝します。 – Serenity