lvarayut / relay-fullstack

:point_up::running: Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS
https://lvarayut.github.io/relay-fullstack/
MIT License
986 stars 126 forks source link

Redirect to login page and network layer #107

Closed CostaRico closed 6 years ago

CostaRico commented 6 years ago

I've tried to use network layer to redirect user to user page if status code is 401, but I dont know how to make redirect from callback:

import {
  RelayNetworkLayer,
  authMiddleware,
} from 'react-relay-network-layer';

Relay.injectNetworkLayer(new RelayNetworkLayer([

  authMiddleware({
    token: () => 'testtoken',
    tokenRefreshPromise(){
      // we are here if status code is 401
      // but how can I redirect user to login page here?
    }
  }),
]));

If I just remove token in tokenRefreshPromise and check it out in onEnter hook, user is able to open route because onEnter fires before tokenRefreshPromise.

What is the right way to redirect user to login page?

Thx a lot!

Neitsch commented 6 years ago

I've been wanting to migrate to Relay Modern for a while, but have been pretty busy. If we use that, then you'll be able to handle the network layer more manually. However, given that you are using react-relay-network-layer more than anything else, you should ask it there. Please do not file an issue in multiple places.