Ott 207 sending jwt (#33)

keep-around/af30b88d367751c9e05a735e4a0467a96238ef47
Mirlan 6 years ago committed by GitHub
parent 9669fe14d7
commit 9f766476c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      src/config/authKeys.tsx
  2. 6
      src/helpers/callApi/clearUserAuthInfo.tsx
  3. 8
      src/helpers/callApi/getRequestConfig.tsx
  4. 6
      src/helpers/callApi/index.tsx
  5. 17
      src/helpers/callApi/logoutIfUnauthorized.tsx
  6. 11
      src/helpers/callApi/removeCookie.tsx
  7. 6
      src/helpers/callApi/types.tsx
  8. 37
      src/requests/login.tsx

@ -1,7 +1 @@
export const AUTH_KEYS = {
authUser: 'AuthUser',
backLocation: 'backLocation',
cookieToken: 'token',
headerToken: 'x-auth-token',
idToken: 'id_token',
}
export const TOKEN_KEY = 'auth_token'

@ -1,6 +0,0 @@
import { AUTH_KEYS } from 'config'
export const clearUserAuthInfo = () => {
localStorage.removeItem(AUTH_KEYS.idToken)
localStorage.removeItem(AUTH_KEYS.authUser)
}

@ -1,10 +1,10 @@
import { AUTH_KEYS } from 'config'
import { TOKEN_KEY } from 'config'
import { readToken } from 'helpers'
import { TRequestConfig } from './types'
import type { RequestConfig } from './types'
export const getRequestConfig = (
config: TRequestConfig,
config: RequestConfig,
signal?: AbortSignal,
) => {
const requestConfig = {
@ -22,7 +22,7 @@ export const getRequestConfig = (
const token = readToken()
if (token) {
requestConfig.headers.set(AUTH_KEYS.headerToken, token)
requestConfig.headers.set(TOKEN_KEY, token)
}
return requestConfig

@ -1,4 +1,4 @@
import { TCallApi } from './types'
import type { CallApiArgs } from './types'
import { parseJSON } from './parseJSON'
import { checkStatus } from './checkStatus'
import { getRequestConfig } from './getRequestConfig'
@ -8,7 +8,7 @@ export const callApiBase = ({
abortSignal,
config,
url,
}: TCallApi) => {
}: CallApiArgs) => {
const requestConfig = getRequestConfig(config, abortSignal)
// eslint-disable-next-line no-console
@ -25,7 +25,7 @@ export const callApi = ({
abortSignal,
config,
url,
}: TCallApi) => (
}: CallApiArgs) => (
callApiBase({
abortSignal,
config,

@ -1,19 +1,10 @@
import { AUTH_KEYS, PAGES } from 'config'
import { removeCookie } from './removeCookie'
import { clearUserAuthInfo } from './clearUserAuthInfo'
import { PAGES } from 'config'
import { removeToken } from 'helpers'
export const logoutIfUnauthorized = (error: Error) => {
if (error.message === 'Unauthorized') {
clearUserAuthInfo()
removeCookie(AUTH_KEYS.cookieToken)
const { pathname } = window.location
if (pathname !== PAGES.login) {
localStorage.setItem(AUTH_KEYS.backLocation, pathname)
window.location.pathname = PAGES.login
}
removeToken()
window.location.pathname = PAGES.login
}
// eslint-disable-next-line no-console

@ -1,11 +0,0 @@
export const removeCookie = (
name: string,
domain: string = '.instatscout.com',
) => {
document.cookie = `
${name}=;
expires='Thu, 01 Jan 1970 00:00:00 UTC';
path=/;
domain=${domain}
`
}

@ -1,11 +1,11 @@
export type TRequestConfig = {
export type RequestConfig = {
body?: any,
headers?: Headers,
method?: string,
}
export type TCallApi = {
export type CallApiArgs = {
abortSignal?: AbortSignal,
config: TRequestConfig,
config: RequestConfig,
url: string,
}

@ -1,5 +1,11 @@
import { DATA_URL, PROCEDURES } from 'config'
import { callApi, writeToken } from 'helpers'
import {
DATA_URL,
PROCEDURES,
TOKEN_KEY,
} from 'config'
import { callApiBase } from 'helpers/callApi'
import { checkStatus } from 'helpers/callApi/checkStatus'
import { parseJSON } from 'helpers/callApi/parseJSON'
const proc = PROCEDURES.auth_user
@ -15,7 +21,6 @@ type StatusCodes = typeof statusCodes[keyof typeof statusCodes]
type Response = {
_p_status: StatusCodes,
_p_token: string,
}
type Args = {
@ -37,15 +42,21 @@ export const login = async ({
},
}
const response: Response = await callApi({
config,
url: DATA_URL,
})
if (response._p_status === statusCodes.SUCCESS) {
writeToken(response._p_token)
return Promise.resolve(response._p_token)
try {
const response = await callApiBase({
config,
url: DATA_URL,
})
checkStatus(response)
const token = response.headers.get(TOKEN_KEY)
const { _p_status }: Response = await parseJSON(response)
if (token && _p_status === statusCodes.SUCCESS) {
return Promise.resolve(token)
}
return Promise.reject(_p_status)
} catch (error) {
return Promise.reject()
}
return Promise.reject(response._p_status)
}

Loading…
Cancel
Save