【问题标题】:How to implement logout in apollo-client如何在 apollo-client 中实现注销
【发布时间】:2017-01-22 13:25:19
【问题描述】:

apollo 文档中的认证示例如下:

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

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

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

【问题讨论】:

    标签: stack graphql apollo apollo-server


    【解决方案1】:

    看看我的实现:

    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);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 2019-01-20
      • 2014-05-26
      • 1970-01-01
      • 2012-06-07
      • 2016-09-02
      • 2011-05-09
      • 2021-01-11
      • 2021-11-08
      相关资源
      最近更新 更多