Last active
June 7, 2023 14:45
-
-
Save mattfysh/14d37f808583e444be6f40bc939ebe38 to your computer and use it in GitHub Desktop.
Revisions
-
mattfysh revised this gist
Jul 7, 2021 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,6 +28,7 @@ const amplifyAuthExchange = authExchange({ getAuth: async () => { const session = await Auth.currentSession() if (session) { // defines the authState elsewhere return { token: session.getAccessToken().getJwtToken(), } -
mattfysh revised this gist
Jul 7, 2021 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,7 +6,7 @@ import { set } from 'lodash' const amplifyAuthExchange = authExchange({ addAuthToOperation: ({ authState, operation }) => { if (!authState?.token) { return operation } const newContext = produce(operation.context, context => { -
mattfysh revised this gist
Jul 5, 2021 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,4 @@ import { makeOperation } from '@urql/svelte' import { authExchange } from '@urql/exchange-auth' import { Auth } from 'aws-amplify' import produce from 'immer' -
mattfysh revised this gist
Jul 5, 2021 . 1 changed file with 5 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,8 @@ import { authExchange } from '@urql/exchange-auth' import { Auth } from 'aws-amplify' import produce from 'immer' import { set } from 'lodash' const amplifyAuthExchange = authExchange({ addAuthToOperation: ({ authState, operation }) => { if (!authState || !authState.token) { -
mattfysh created this gist
Jul 5, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,32 @@ const amplifyAuthExchange = authExchange({ addAuthToOperation: ({ authState, operation }) => { if (!authState || !authState.token) { return operation } const newContext = produce(operation.context, context => { set(context, 'fetchOptions.headers.Authorization', authState.token) }) return makeOperation(operation.kind, operation, newContext) }, willAuthError: ({ authState }) => { try { const [,payload] = authState.token.split('.') const { exp } = JSON.parse(Buffer.from(payload, 'base64')) return exp * 1000 < Date.now() } catch(e) { return true } }, didAuthError: ({ error }) => error.graphQLErrors.some(e => e.message === 'Unauthorized'), getAuth: async () => { const session = await Auth.currentSession() if (session) { return { token: session.getAccessToken().getJwtToken(), } } Auth.signOut() return null }, })