Fix WeChat MP login "state too long" bug

This commit is contained in:
Gucheng Wang
2022-09-09 11:43:54 +08:00
parent cfce5289ed
commit 94b6eb803d
3 changed files with 24 additions and 10 deletions

View File

@ -126,15 +126,27 @@ export function getOAuthGetParameters(params) {
}
}
export function getStateFromQueryParams(applicationName, providerName, method) {
export function getStateFromQueryParams(applicationName, providerName, method, isShortState) {
let query = window.location.search;
query = `${query}&application=${applicationName}&provider=${providerName}&method=${method}`;
if (method === "link") {
query = `${query}&from=${window.location.pathname}`;
}
return btoa(query);
if (!isShortState) {
return btoa(query);
} else {
const state = providerName;
sessionStorage.setItem(state, query);
return state;
}
}
export function getQueryParamsFromState(state) {
return atob(state);
const query = sessionStorage.getItem(state);
if (query === null) {
return atob(state);
} else {
return query;
}
}