Akryum / Akryum/vue-cli-plugin-apollo
Ws request needs to refresh the token to take effect
- Langage dominant
- JavaScript
- Étoiles
- 477
- Forks
- 109
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
```typescript
// server
context: ({ req, connection }) =>
connection ? { req: connection.context } : { req },
playground: true,
debug: true,
autoSchemaFile: 'schema.graphql',
installSubscriptionHandlers: true,
subscriptions: {
onConnect: (connectionParams: any) => {
return { headers: { authorization: connectionParams.authorization } };
},
},
```
```typescript
// client
import Vue from 'vue'
import VueApollo from 'vue-apollo'
import { createApolloClient } from 'vue-cli-plugin-apollo/graphql-client'
import router from '@/router'
Vue.use(VueApollo)
const httpEndpoint =
process.env.VUE_APP_GRAPHQL_HTTP || 'http://localhost:4000/graphql'
const defaultOptions = {
tokenName: 'token',
wsEndpoint: `ws://localhost:3333/graphql`,
httpEndpoint,
persisting: false,
ssr: false
}
export function createProvider(options = {}) {
const { apolloClient, wsClient } = createApolloClient({
...defaultOptions,
...options
})
apolloClient.wsClient = wsClient
const apolloProvider = new VueApollo({
defaultClient: apolloClient,
defaultOptions: {
$query: {
// fetchPolicy: 'cache-and-network'
}
},
errorHandler(error: any) {
// tslint:disable-next-line:no-console
console.log(
'%cError',
'background: red; color: white; padding: 2px 4px; border-radius: 3px; font-weight: bold;',
JSON.stringify(error)
)
if (Number(error.gqlError.message.statusCode) === 401) {
router.replace({
path: '/login',
query: {
redirect: router.currentRoute.fullPath
}
})
}
}
})
return apolloProvider
}
```
- When the first WS request `payload` is empty, I need to manually refresh to get the `authorization` parameter. What is the reason?
Token:

First WS request:

Request after refresh:

Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.