Enabled Json Web Token authorisation on backend, and frontend

This commit is contained in:
Nedim Uka
2018-07-24 17:28:24 +02:00
parent 03963d6056
commit 1f6b1043a4
34 changed files with 7539 additions and 2625 deletions

View File

@@ -38,19 +38,27 @@ export const validateAccessToken = (token) => {
return dispatch => {
dispatch(validateToken());
return htmlClient.fetch({
url: `${API_SERVER}/login/api/validateToken`
url: `http://localhost//wp-json/jwt-auth/v1/token/validate`,
method: 'post'
})
.then(response => {
if (response.data && response.data.status === 'success') {
const serverTime = response.data.serverTime || 1;
if (response.data && response.data.status === 200) {
// TODO: Implement refresh logic on backend as it was on old wias , or find a nother way
// to handle token validation another way
// const serverTime = response.data.serverTime || 1;
dispatch(loggedIn({
accessToken: token,
userInfo: response.data.userInfo
accessToken: token
// userInfo: response.data.userInfo
}));
refreshToken = response.data.refreshToken;
startRefreshTimer(dispatch, serverTime);
dispatch(setUserAsCompanyAdmin(response.data.userInfo.wiaas_is_company_admin));
// refreshToken = response.data.refreshToken;
// startRefreshTimer(dispatch, serverTime);
// dispatch(setUserAsCompanyAdmin(response.data.userInfo.wiaas_is_company_admin));
dispatch(setUserAsCompanyAdmin(false));
} else {
dispatch(loginFail(response.data));
}
@@ -66,30 +74,34 @@ export const setUserAsCompanyAdmin = (isCompanyAdmin) => ({type: SET_COMPANY_ADM
export const validateCredentials = (username, password) => {
return dispatch => {
dispatch(login());
return htmlClient.fetch({
url: `${API_SERVER}/login/api/getToken`,
method: 'post',
data: {
username,
password,
login: true
},
header: {}
})
url: `http://localhost/wp-json/jwt-auth/v1/token`,
method: 'post',
data: {
"username": username,
"password": password
}
})
.then(response => {
if (response.data.status === 'success') {
const decodedAceessToken = jwtDecode(response.data.accessToken);
if(decodedAceessToken.data.wiaas_user_type === 'customer'){
localStorage.setItem('accessToken', response.data.accessToken);
const serverTime = response.data.serverTime || 1;
refreshToken = response.data.refreshToken;
startRefreshTimer(dispatch, serverTime);
dispatch(loggedIn(response.data));
dispatch(setUserAsCompanyAdmin(response.data.userInfo.wiaas_is_company_admin));
}else{
dispatch(loginFail({status: 'fail', errorMessage: 'INVALID_USER_TYPE'}));
}
if (response.data && response.data.token) {
const decodedAceessToken = jwtDecode(response.data.token);
// TODO : Uncomment code, and fix user type logic after adding customer type to woocommerce backend
// if(decodedAceessToken.data.wiaas_user_type === 'customer'){
localStorage.setItem('accessToken', response.data.token);
const serverTime = decodedAceessToken.nbf || 1;
// refreshToken = response.data.refreshToken;
startRefreshTimer(dispatch, serverTime);
dispatch(loggedIn(response.data));
// dispatch(setUserAsCompanyAdmin(response.data.userInfo.wiaas_is_company_admin));
dispatch(setUserAsCompanyAdmin(false));
// }else{
// dispatch(loginFail({status: 'fail', errorMessage: 'INVALID_USER_TYPE'}));
// }
} else {
dispatch(loginFail(response.data));
}
@@ -187,8 +199,8 @@ export const logout = () => {
export const loggedIn = (jsonData) => {
return {
type: LOGIN_SUCCESS,
isLoggedIn: true,
userInfo: jsonData.userInfo
isLoggedIn: true
// userInfo: jsonData.userInfo
}
}