如何在 apollo-client 中实现注销

Posted

技术标签:

【中文标题】如何在 apollo-client 中实现注销【英文标题】:How to implement logout in 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();
  
]);
```

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

【问题讨论】:

【参考方案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);
  
);

【讨论】:

以上是关于如何在 apollo-client 中实现注销的主要内容,如果未能解决你的问题,请参考以下文章

如何在 node express 中实现 JWT(JsonWebToken) 注销

如何在 servlet jsp 中实现生产就绪登录注销功能

如何在基于 Keycloak/Spring 的应用程序中实现单点注销?

如何在登录系统中使用会话并在codeigniter中实现注销

如何在新的导航抽屉架构组件中实现共享应用或评分应用或注销功能

如何在 Grails 中实现超时页面