Compare commits
3 Commits
main
...
nadro/adho
Author | SHA1 | Date | |
---|---|---|---|
e85f116811 | |||
9389de083a | |||
096bea3ebc |
1
interface.d.ts
vendored
1
interface.d.ts
vendored
@ -79,7 +79,6 @@ export interface IElectronAPI {
|
|||||||
VITE_KC_API_BASE_URL: string
|
VITE_KC_API_BASE_URL: string
|
||||||
VITE_KC_SITE_BASE_URL: string
|
VITE_KC_SITE_BASE_URL: string
|
||||||
VITE_KC_SITE_APP_URL: string
|
VITE_KC_SITE_APP_URL: string
|
||||||
VITE_KC_SKIP_AUTH: string
|
|
||||||
VITE_KC_CONNECTION_TIMEOUT_MS: string
|
VITE_KC_CONNECTION_TIMEOUT_MS: string
|
||||||
VITE_KC_DEV_TOKEN: string
|
VITE_KC_DEV_TOKEN: string
|
||||||
NODE_ENV: string
|
NODE_ENV: string
|
||||||
|
@ -11,7 +11,6 @@ export const VITE_KC_API_WS_MODELING_URL = env.VITE_KC_API_WS_MODELING_URL as
|
|||||||
export const VITE_KC_API_BASE_URL = env.VITE_KC_API_BASE_URL
|
export const VITE_KC_API_BASE_URL = env.VITE_KC_API_BASE_URL
|
||||||
export const VITE_KC_SITE_BASE_URL = env.VITE_KC_SITE_BASE_URL
|
export const VITE_KC_SITE_BASE_URL = env.VITE_KC_SITE_BASE_URL
|
||||||
export const VITE_KC_SITE_APP_URL = env.VITE_KC_SITE_APP_URL
|
export const VITE_KC_SITE_APP_URL = env.VITE_KC_SITE_APP_URL
|
||||||
export const VITE_KC_SKIP_AUTH = env.VITE_KC_SKIP_AUTH as string | undefined
|
|
||||||
export const VITE_KC_CONNECTION_TIMEOUT_MS =
|
export const VITE_KC_CONNECTION_TIMEOUT_MS =
|
||||||
env.VITE_KC_CONNECTION_TIMEOUT_MS as string | undefined
|
env.VITE_KC_CONNECTION_TIMEOUT_MS as string | undefined
|
||||||
export const VITE_KC_DEV_TOKEN = env.VITE_KC_DEV_TOKEN as string | undefined
|
export const VITE_KC_DEV_TOKEN = env.VITE_KC_DEV_TOKEN as string | undefined
|
||||||
|
@ -697,7 +697,9 @@ export const readTokenFile = async () => {
|
|||||||
export const writeTokenFile = async (token: string) => {
|
export const writeTokenFile = async (token: string) => {
|
||||||
const tokenFilePath = await getTokenFilePath()
|
const tokenFilePath = await getTokenFilePath()
|
||||||
if (err(token)) return Promise.reject(token)
|
if (err(token)) return Promise.reject(token)
|
||||||
return window.electron.writeFile(tokenFilePath, token)
|
const result = window.electron.writeFile(tokenFilePath, token)
|
||||||
|
console.warn(`token written to disk`)
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
export const writeTelemetryFile = async (content: string) => {
|
export const writeTelemetryFile = async (content: string) => {
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
import type { Models } from '@kittycad/lib'
|
import type { Models } from '@kittycad/lib'
|
||||||
import {
|
import { VITE_KC_API_BASE_URL, VITE_KC_DEV_TOKEN } from '@src/env'
|
||||||
DEV,
|
|
||||||
VITE_KC_API_BASE_URL,
|
|
||||||
VITE_KC_DEV_TOKEN,
|
|
||||||
VITE_KC_SKIP_AUTH,
|
|
||||||
} from '@src/env'
|
|
||||||
import { assign, fromPromise, setup } from 'xstate'
|
import { assign, fromPromise, setup } from 'xstate'
|
||||||
|
|
||||||
import { COOKIE_NAME, OAUTH2_DEVICE_CLIENT_ID } from '@src/lib/constants'
|
import { COOKIE_NAME, OAUTH2_DEVICE_CLIENT_ID } from '@src/lib/constants'
|
||||||
@ -21,8 +16,6 @@ import {
|
|||||||
} from '@src/lib/withBaseURL'
|
} from '@src/lib/withBaseURL'
|
||||||
import { ACTOR_IDS } from '@src/machines/machineConstants'
|
import { ACTOR_IDS } from '@src/machines/machineConstants'
|
||||||
|
|
||||||
const SKIP_AUTH = VITE_KC_SKIP_AUTH === 'true' && DEV
|
|
||||||
|
|
||||||
const LOCAL_USER: Models['User_type'] = {
|
const LOCAL_USER: Models['User_type'] = {
|
||||||
id: '8675309',
|
id: '8675309',
|
||||||
name: 'Test User',
|
name: 'Test User',
|
||||||
@ -57,11 +50,7 @@ export type Events =
|
|||||||
|
|
||||||
export const TOKEN_PERSIST_KEY = 'TOKEN_PERSIST_KEY'
|
export const TOKEN_PERSIST_KEY = 'TOKEN_PERSIST_KEY'
|
||||||
export const persistedToken =
|
export const persistedToken =
|
||||||
VITE_KC_DEV_TOKEN ||
|
getCookie(COOKIE_NAME) || localStorage?.getItem(TOKEN_PERSIST_KEY) || ''
|
||||||
getCookie(COOKIE_NAME) ||
|
|
||||||
localStorage?.getItem(TOKEN_PERSIST_KEY) ||
|
|
||||||
''
|
|
||||||
|
|
||||||
export const authMachine = setup({
|
export const authMachine = setup({
|
||||||
types: {} as {
|
types: {} as {
|
||||||
context: UserContext
|
context: UserContext
|
||||||
@ -165,7 +154,7 @@ async function getUser(input: { token?: string }) {
|
|||||||
if (!token && isDesktop()) return Promise.reject(new Error('No token found'))
|
if (!token && isDesktop()) return Promise.reject(new Error('No token found'))
|
||||||
if (token) headers['Authorization'] = `Bearer ${token}`
|
if (token) headers['Authorization'] = `Bearer ${token}`
|
||||||
|
|
||||||
if (SKIP_AUTH) {
|
if (VITE_KC_DEV_TOKEN) {
|
||||||
// For local tests
|
// For local tests
|
||||||
if (localStorage.getItem('FORCE_NO_IMAGE')) {
|
if (localStorage.getItem('FORCE_NO_IMAGE')) {
|
||||||
LOCAL_USER.image = ''
|
LOCAL_USER.image = ''
|
||||||
@ -227,13 +216,27 @@ export function getCookie(cname: string): string | null {
|
|||||||
async function getAndSyncStoredToken(input: {
|
async function getAndSyncStoredToken(input: {
|
||||||
token?: string
|
token?: string
|
||||||
}): Promise<string> {
|
}): Promise<string> {
|
||||||
// dev mode
|
if (VITE_KC_DEV_TOKEN) {
|
||||||
if (VITE_KC_DEV_TOKEN) return VITE_KC_DEV_TOKEN
|
console.warn(
|
||||||
|
`Authentication skipped, VITE_KC_DEV_TOKEN:${!!VITE_KC_DEV_TOKEN ? '<REDACTED>' : 'Oh no, this should not be missing.'}`
|
||||||
|
)
|
||||||
|
return VITE_KC_DEV_TOKEN
|
||||||
|
}
|
||||||
|
|
||||||
|
console.warn('Authentication is required')
|
||||||
|
const tokenPassedFromInput = input.token
|
||||||
|
const tokenFromCookie = getCookie(COOKIE_NAME)
|
||||||
|
const tokenFromLocalStorage = localStorage?.getItem(TOKEN_PERSIST_KEY)
|
||||||
|
|
||||||
|
console.warn(`token from input`, !!tokenPassedFromInput)
|
||||||
|
console.warn(`token from cookie`, !!tokenFromCookie)
|
||||||
|
console.warn(`token from local storage`, !!tokenFromLocalStorage)
|
||||||
|
|
||||||
const token =
|
const token =
|
||||||
input.token && input.token !== ''
|
input.token && input.token !== ''
|
||||||
? input.token
|
? input.token
|
||||||
: getCookie(COOKIE_NAME) || localStorage?.getItem(TOKEN_PERSIST_KEY) || ''
|
: getCookie(COOKIE_NAME) || localStorage?.getItem(TOKEN_PERSIST_KEY) || ''
|
||||||
|
|
||||||
if (token) {
|
if (token) {
|
||||||
// has just logged in, update storage
|
// has just logged in, update storage
|
||||||
localStorage.setItem(TOKEN_PERSIST_KEY, token)
|
localStorage.setItem(TOKEN_PERSIST_KEY, token)
|
||||||
@ -242,6 +245,7 @@ async function getAndSyncStoredToken(input: {
|
|||||||
}
|
}
|
||||||
return token
|
return token
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isDesktop()) return ''
|
if (!isDesktop()) return ''
|
||||||
const fileToken = isDesktop() ? await readTokenFile() : ''
|
const fileToken = isDesktop() ? await readTokenFile() : ''
|
||||||
// prefer other above, but file will ensure login persists after app updates
|
// prefer other above, but file will ensure login persists after app updates
|
||||||
|
@ -75,7 +75,6 @@ process.env.VITE_KC_API_WS_MODELING_URL ??= viteEnv.VITE_KC_API_WS_MODELING_URL
|
|||||||
process.env.VITE_KC_API_BASE_URL ??= viteEnv.VITE_KC_API_BASE_URL
|
process.env.VITE_KC_API_BASE_URL ??= viteEnv.VITE_KC_API_BASE_URL
|
||||||
process.env.VITE_KC_SITE_BASE_URL ??= viteEnv.VITE_KC_SITE_BASE_URL
|
process.env.VITE_KC_SITE_BASE_URL ??= viteEnv.VITE_KC_SITE_BASE_URL
|
||||||
process.env.VITE_KC_SITE_APP_URL ??= viteEnv.VITE_KC_SITE_APP_URL
|
process.env.VITE_KC_SITE_APP_URL ??= viteEnv.VITE_KC_SITE_APP_URL
|
||||||
process.env.VITE_KC_SKIP_AUTH ??= viteEnv.VITE_KC_SKIP_AUTH
|
|
||||||
process.env.VITE_KC_CONNECTION_TIMEOUT_MS ??=
|
process.env.VITE_KC_CONNECTION_TIMEOUT_MS ??=
|
||||||
viteEnv.VITE_KC_CONNECTION_TIMEOUT_MS
|
viteEnv.VITE_KC_CONNECTION_TIMEOUT_MS
|
||||||
|
|
||||||
|
@ -292,7 +292,6 @@ contextBridge.exposeInMainWorld('electron', {
|
|||||||
'VITE_KC_API_BASE_URL',
|
'VITE_KC_API_BASE_URL',
|
||||||
'VITE_KC_SITE_BASE_URL',
|
'VITE_KC_SITE_BASE_URL',
|
||||||
'VITE_KC_SITE_APP_URL',
|
'VITE_KC_SITE_APP_URL',
|
||||||
'VITE_KC_SKIP_AUTH',
|
|
||||||
'VITE_KC_CONNECTION_TIMEOUT_MS',
|
'VITE_KC_CONNECTION_TIMEOUT_MS',
|
||||||
'VITE_KC_DEV_TOKEN',
|
'VITE_KC_DEV_TOKEN',
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user