diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000..7e58e7b37a --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +#secure password, can use openssl rand --hex 32 +NUXT_SESSION_PASSWORD="" \ No newline at end of file diff --git a/app/components/AppHeader.vue b/app/components/AppHeader.vue index ae779a397b..89b98db31c 100644 --- a/app/components/AppHeader.vue +++ b/app/components/AppHeader.vue @@ -2,11 +2,9 @@ withDefaults( defineProps<{ showLogo?: boolean - showConnector?: boolean }>(), { showLogo: true, - showConnector: true, }, ) @@ -98,9 +96,7 @@ onKeyStroke(',', e => { - + diff --git a/app/components/AuthButton.client.vue b/app/components/AuthButton.client.vue new file mode 100644 index 0000000000..000d50f673 --- /dev/null +++ b/app/components/AuthButton.client.vue @@ -0,0 +1,18 @@ + + + diff --git a/app/components/AuthButton.server.vue b/app/components/AuthButton.server.vue new file mode 100644 index 0000000000..58ecdcbf8d --- /dev/null +++ b/app/components/AuthButton.server.vue @@ -0,0 +1,10 @@ + diff --git a/app/components/AuthButton.vue b/app/components/AuthButton.vue new file mode 100644 index 0000000000..000d50f673 --- /dev/null +++ b/app/components/AuthButton.vue @@ -0,0 +1,18 @@ + + + diff --git a/app/components/AuthModal.vue b/app/components/AuthModal.vue new file mode 100644 index 0000000000..f7475506f4 --- /dev/null +++ b/app/components/AuthModal.vue @@ -0,0 +1,198 @@ + + + diff --git a/app/components/ConnectorModal.vue b/app/components/ConnectorModal.vue index 7807110c22..f9d411fc37 100644 --- a/app/components/ConnectorModal.vue +++ b/app/components/ConnectorModal.vue @@ -93,7 +93,7 @@ watch(open, isOpen => {

{{ $t('connector.modal.connected') }}

- {{ $t('connector.modal.logged_in_as', { user: npmUser }) }} + {{ $t('connector.modal.connected_as_user', { user: npmUser }) }}

diff --git a/app/components/HeaderAccountMenu.client.vue b/app/components/HeaderAccountMenu.client.vue new file mode 100644 index 0000000000..05c22797ee --- /dev/null +++ b/app/components/HeaderAccountMenu.client.vue @@ -0,0 +1,251 @@ + + + diff --git a/app/components/HeaderAccountMenu.server.vue b/app/components/HeaderAccountMenu.server.vue new file mode 100644 index 0000000000..02c5e7ec5e --- /dev/null +++ b/app/components/HeaderAccountMenu.server.vue @@ -0,0 +1,5 @@ + diff --git a/app/composables/useAtproto.ts b/app/composables/useAtproto.ts new file mode 100644 index 0000000000..b0e716832c --- /dev/null +++ b/app/composables/useAtproto.ts @@ -0,0 +1,16 @@ +import type { UserSession } from '#shared/schemas/userSession' + +/** @public */ +export function useAtproto() { + const { data: user, pending, clear } = useFetch('/api/auth/session') + + async function logout() { + await $fetch('/api/auth/session', { + method: 'delete', + }) + + clear() + } + + return { user, pending, logout } +} diff --git a/app/composables/useConnector.ts b/app/composables/useConnector.ts index e373bd7b6b..272158a18b 100644 --- a/app/composables/useConnector.ts +++ b/app/composables/useConnector.ts @@ -71,7 +71,7 @@ export const useConnector = createSharedComposable(function useConnector() { lastExecutionTime: null, })) - const baseUrl = computed(() => `http://localhost:${config.value?.port ?? DEFAULT_PORT}`) + const baseUrl = computed(() => `http://127.0.0.1:${config.value?.port ?? DEFAULT_PORT}`) const route = useRoute() const router = useRouter() @@ -109,7 +109,7 @@ export const useConnector = createSharedComposable(function useConnector() { state.value.error = null try { - const response = await $fetch(`http://localhost:${port}/connect`, { + const response = await $fetch(`http://127.0.0.1:${port}/connect`, { method: 'POST', body: { token }, timeout: 5000, diff --git a/app/error.vue b/app/error.vue index ce6a832ccd..7bb9ed11d3 100644 --- a/app/error.vue +++ b/app/error.vue @@ -31,7 +31,7 @@ useHead({