diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-09-27 10:13:12 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-09-27 10:13:12 -0500 |
commit | c89ec94b17eb0ea568faf9349fc74a671a710650 (patch) | |
tree | a57c21e154f63277b7e92e6915aaf1115953b359 /src | |
parent | dd73fc218366a2ad66188e19079fe2f0afeab1d7 (diff) | |
download | voidsky-c89ec94b17eb0ea568faf9349fc74a671a710650.tar.zst |
Remove old auth code
Diffstat (limited to 'src')
-rw-r--r-- | src/platform/auth-flow.native.ts | 53 | ||||
-rw-r--r-- | src/platform/auth-flow.ts | 19 | ||||
-rw-r--r-- | src/state/lib/auth.ts | 118 |
3 files changed, 0 insertions, 190 deletions
diff --git a/src/platform/auth-flow.native.ts b/src/platform/auth-flow.native.ts deleted file mode 100644 index 3c9bd09eb..000000000 --- a/src/platform/auth-flow.native.ts +++ /dev/null @@ -1,53 +0,0 @@ -import {Linking} from 'react-native' -import * as auth from '@adxp/auth' -import * as ucan from 'ucans' -import {InAppBrowser} from 'react-native-inappbrowser-reborn' -import {isWeb} from '../platform/detection' -import {extractHashFragment, makeAppUrl} from '../platform/urls' -import {ReactNativeStore, parseUrlForUcan} from '../state/lib/auth' -import * as env from '../env' - -export async function requestAppUcan( - authStore: ReactNativeStore, - scope: ucan.Capability, -) { - const did = await authStore.getDid() - const returnUrl = makeAppUrl() - const fragment = auth.requestAppUcanHashFragment(did, scope, returnUrl) - const url = `${env.AUTH_LOBBY}#${fragment}` - - if (isWeb) { - // @ts-ignore window is defined -prf - window.location.href = url - return false - } - - if (await InAppBrowser.isAvailable()) { - // use in-app browser - const res = await InAppBrowser.openAuth(url, returnUrl, { - // iOS Properties - ephemeralWebSession: false, - // Android Properties - showTitle: false, - enableUrlBarHiding: true, - enableDefaultShare: false, - }) - if (res.type === 'success' && res.url) { - const fragment = extractHashFragment(res.url) - if (fragment) { - const ucan = await parseUrlForUcan(fragment) - if (ucan) { - await authStore.addUcan(ucan) - return true - } - } - } else { - console.log('Not completed', res) - return false - } - } else { - // use system browser - Linking.openURL(url) - } - return true -} diff --git a/src/platform/auth-flow.ts b/src/platform/auth-flow.ts deleted file mode 100644 index fbc85a373..000000000 --- a/src/platform/auth-flow.ts +++ /dev/null @@ -1,19 +0,0 @@ -import * as auth from '@adxp/auth' -import * as ucan from 'ucans' -import {makeAppUrl} from '../platform/urls' -import {ReactNativeStore} from '../state/lib/auth' -import * as env from '../env' - -export async function requestAppUcan( - authStore: ReactNativeStore, - scope: ucan.Capability, -) { - const did = await authStore.getDid() - const returnUrl = makeAppUrl() - const fragment = auth.requestAppUcanHashFragment(did, scope, returnUrl) - const url = `${env.AUTH_LOBBY}#${fragment}` - - // @ts-ignore window is defined -prf - window.location.href = url - return false -} diff --git a/src/state/lib/auth.ts b/src/state/lib/auth.ts deleted file mode 100644 index d51ba449e..000000000 --- a/src/state/lib/auth.ts +++ /dev/null @@ -1,118 +0,0 @@ -export {} // TODO -/*import * as auth from '@adxp/auth' -import * as ucan from 'ucans' -import { - getInitialURL, - extractHashFragment, - clearHash, -} from '../../platform/urls' -import * as authFlow from '../../platform/auth-flow' -import * as storage from './storage' - -const SCOPE = auth.writeCap( - 'did:key:z6MkfRiFMLzCxxnw6VMrHK8pPFt4QAHS3jX3XM87y9rta6kP', - 'did:example:microblog', -) - -export async function isAuthed(authStore: ReactNativeStore) { - return await authStore.hasUcan(SCOPE) -} - -export async function logout(authStore: ReactNativeStore) { - await authStore.reset() -} - -export async function parseUrlForUcan(fragment: string) { - try { - return await auth.parseLobbyResponseHashFragment(fragment) - } catch (err) { - return undefined - } -} - -export async function initialLoadUcanCheck(authStore: ReactNativeStore) { - let wasAuthed = false - const fragment = extractHashFragment(await getInitialURL()) - if (fragment) { - const ucan = await parseUrlForUcan(fragment) - if (ucan) { - await authStore.addUcan(ucan) - wasAuthed = true - clearHash() - } - } - return wasAuthed -} - -export async function requestAppUcan(authStore: ReactNativeStore) { - return authFlow.requestAppUcan(authStore, SCOPE) -} - -export class ReactNativeStore extends auth.AuthStore { - private keypair: ucan.EdKeypair - private ucanStore: ucan.Store - - constructor(keypair: ucan.EdKeypair, ucanStore: ucan.Store) { - super() - this.keypair = keypair - this.ucanStore = ucanStore - } - - static async load(): Promise<ReactNativeStore> { - const keypair = await ReactNativeStore.loadOrCreateKeypair() - - const storedUcans = await ReactNativeStore.getStoredUcanStrs() - const ucanStore = await ucan.Store.fromTokens(storedUcans) - - return new ReactNativeStore(keypair, ucanStore) - } - - static async loadOrCreateKeypair(): Promise<ucan.EdKeypair> { - const storedKey = await storage.loadString('adxKey') - if (storedKey) { - return ucan.EdKeypair.fromSecretKey(storedKey) - } else { - // @TODO: again just stand in since no actual root keys - const keypair = await ucan.EdKeypair.create({exportable: true}) - storage.saveString('adxKey', await keypair.export()) - return keypair - } - } - - static async getStoredUcanStrs(): Promise<string[]> { - const storedStr = await storage.loadString('adxUcans') - if (!storedStr) { - return [] - } - return storedStr.split(',') - } - - static setStoredUcanStrs(ucans: string[]): void { - storage.saveString('adxUcans', ucans.join(',')) - } - - protected async getKeypair(): Promise<ucan.EdKeypair> { - return this.keypair - } - - async addUcan(token: ucan.Chained): Promise<void> { - this.ucanStore.add(token) - const storedUcans = await ReactNativeStore.getStoredUcanStrs() - ReactNativeStore.setStoredUcanStrs([...storedUcans, token.encoded()]) - } - - async getUcanStore(): Promise<ucan.Store> { - return this.ucanStore - } - - async clear(): Promise<void> { - storage.clear() - } - - async reset(): Promise<void> { - this.clear() - this.keypair = await ReactNativeStore.loadOrCreateKeypair() - this.ucanStore = await ucan.Store.fromTokens([]) - } -} -*/ |