Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'jwt-decode' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
...state,
settings: getSettingsChange(
`editor.${action.option}`,
action,
state.settings
),
};
}
if (type === SET_TOKEN) {
if (!action.value) {
// anything falsy will sign out
return defaultState;
}
const user = decode(action.value);
const {
username,
pro,
githubToken,
// settings
} = user;
return {
...state,
token: action.value,
...{
username,
pro,
githubToken,
// settings
},
export function loadUserProfile() {
try {
const idToken = localStorage.getItem(ID_TOKEN);
const userProfile = jwt_decode(idToken);
const now = new Date().getTime() / 1000; // Date().getTime() returns milliseconds.
// So divide by 1000 to get seconds
if (now > userProfile.exp) {
// user profile has expired.
removeIdToken();
return null;
}
return userProfile;
} catch (err) {
return null;
}
}
constructor(token: string) {
this.accessToken = token.replace('Bearer ', '');
try {
const tokenClaims = decode(this.accessToken);
// exp claim is in seconds, convert it se to milliseconds
this.expires = tokenClaims.exp * 1000;
} catch (err) {
this.expires = 0;
}
}
}
return new Promise((resolve, reject) => {
const user = jwtDecode(token)
if (!user || !user.isAdmin) reject('invalid token')
request
.post('/api/admin/v1/users')
.set('Accept', 'application/json')
.set('Authorization', 'JWT ' + token)
.send(form)
.end(function (err, res) {
if (!err && res.body) {
resolve(res.body)
} else {
reject(err)
}
})
})
}
.then(response => {
const user = response.status === 200 ? jwtDecode(accessToken) : undefined;
this.setState({ initialized: true, context: { ...this.state.context, user } });
}).catch(error => {
this.setState({ initialized: true, context: { ...this.state.context, user: undefined } });
function getValidPayloadFromToken(token) {
if (token) {
try {
var payload = decode(token)
return payloadIsValid(payload) ? payload : undefined
} catch (error) {
return undefined
}
}
return undefined
}
export const validateJWT = ({ jwt }) => {
if (!jwt) return false;
const validatedPayload = jwtDecode(jwt);
const isCurrent = new Date(validatedPayload.exp * 1000).valueOf() > Date.now();
const status = get(validatedPayload, 'context.user.status', '');
const isApproved =
isAdminToken({ validatedPayload }) || [status].map(toLower).includes('approved');
return isCurrent && isApproved && validatedPayload;
};
buildState(token) {
try {
const decodedToken = jwtDecode(token)
if (!propsMapping) {
return decodedToken
}
return Object.keys(propsMapping).reduce((result, fromKey) => {
const toKey = propsMapping[fromKey]
result[toKey] = decodedToken[fromKey]
return result
}, {})
} catch (e) {
this.props.onJwtError(e)
return {}
}
vtex: { adminUserAuthToken, storeUserAuthToken },
request: {
headers: { cookie },
},
} = context
const parsedCookies = parseCookie(cookie || '')
const userToken = storeUserAuthToken
const adminToken = adminUserAuthToken
if (userToken) {
return identity
.getUserWithToken(userToken)
.then(data => ({ userId: data.userId, email: data.user }))
} else if (!userToken && !!adminToken) {
const adminInfo = jwtDecode(adminToken) as any
const callOpUserEmail = adminInfo && adminInfo.sub
const isValidCallOp =
callOpUserEmail &&
(await isValidCallcenterOperator(context, callOpUserEmail))
if (!isValidCallOp) {
throw new AuthenticationError('User is not a valid callcenter operator')
}
const customerEmail = parsedCookies['vtex-impersonated-customer-email']
return profile
.getProfileInfo({ email: customerEmail, userId: '' })
.then(({ email, userId }) => ({ email, userId }))
}
return new Promise((resolve, reject) => {
const token = getToken()
const user = jwtDecode(token)
if (!user || !user.isAdmin) reject('invalid token')
request
.get(LOCAL_PATH + '/api/admin/v1/posts')
.set('Accept', 'application/json')
.set('Authorization', 'JWT ' + token)
.query({ offset: offset })
.query({ limit: limit })
.query({ start: start })
.query({ end: end })
.query({ keyword: keyword })
.query({ status: status })
.set('Accept', 'application/json')
.end(function (err, res) {
if (!err && res.body) {
resolve(res.body)