如何在apollo-client中实现注销

时间:2016-09-14 16:31:37

标签: stack graphql apollo apollo-server

在apollo文档中找到的身份验证示例如下:

https://github.com/apollostack/core-docs/blob/master/source/network.md#afterware

```
networkInterface.useAfter([{
  applyAfterware({ response }, next) {
    if (response.status === 401) {
      logout();
    }
    next();
  }
}]);
```

但是注销功能是什么样的?我不清楚如果确实是一个动作,如何将其作为动作实际发送。这些文档真的不清楚,我无法在任何地方找到任何示例代码。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看看我的实施:

const withUserHandlers = withHandlers({
  logout: props => () => {
    const { client, navigation, setUser } = props; // eslint-disable-line
    removeTokenFromUse(client);
    client.resetStore();
    setUser(null);

    const resetAction = NavigationActions.reset({
       index: 0,
       actions: [ NavigationActions.navigate({ routeName: 'Login' }) ],
    });
    navigation.dispatch(resetAction);
  }
});