You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
62 lines
1.9 KiB
import type { UserManagerSettings } from 'oidc-client'
|
|
import { WebStorageStateStore } from 'oidc-client'
|
|
|
|
import { client } from 'config/clients'
|
|
import { AUTH_SERVICE } from 'config/routes'
|
|
import { ClientIds, ClientNames } from 'config/clients/types'
|
|
import { ENV, stageENV } from 'config/env'
|
|
|
|
import { API_ROOT } from 'features/AuthServiceApp/config/routes'
|
|
|
|
export interface Settings extends UserManagerSettings {
|
|
client_id: ClientIds,
|
|
lang?: string,
|
|
nonce?: string,
|
|
redirect_uri: string,
|
|
response_mode: string,
|
|
response_type: string,
|
|
scope?: string,
|
|
state?: string,
|
|
}
|
|
|
|
export const getClientNameByRedirectUri = () => {
|
|
switch (client.name) {
|
|
case ClientNames.Lff:
|
|
return 'lff.instat'
|
|
case ClientNames.Facr:
|
|
return ClientNames.Facr
|
|
case ClientNames.Instat:
|
|
return ClientNames.Instat
|
|
default:
|
|
return ClientNames.Insports
|
|
}
|
|
}
|
|
|
|
const redirectUrl = () => {
|
|
const clientName = getClientNameByRedirectUri()
|
|
switch (true) {
|
|
case (process.env.NODE_ENV === 'development' || client.name === 'lff' || client.name === 'facr'):
|
|
return `${window.origin}/redirect`
|
|
case (ENV === 'staging' || ENV === 'preproduction'):
|
|
return `https://${stageENV}.insports.tv/redirect`
|
|
default:
|
|
return `https://${clientName}.tv/redirect`
|
|
}
|
|
}
|
|
|
|
export const getClientSettings = (): Settings => ({
|
|
authority: AUTH_SERVICE,
|
|
automaticSilentRenew: true,
|
|
client_id: client.auth.clientId,
|
|
filterProtocolClaims: false,
|
|
loadUserInfo: false,
|
|
metadataUrl: `${API_ROOT}/.well-known/openid-configuration${client.auth.metaDataUrlParams || ''}`,
|
|
redirect_uri: redirectUrl(),
|
|
response_mode: 'query',
|
|
response_type: 'id_token token',
|
|
scope: 'openid',
|
|
silent_redirect_uri: `${window.location.origin ?? window.origin}/silent-refresh.html`,
|
|
userStore: new WebStorageStateStore({ store: window.localStorage }),
|
|
})
|
|
|
|
export const needCheckNewDeviсe = client.name === 'instat' || client.name === 'insports'
|
|
|