2016-11-24 20 views
1

非公開パスのヘッダー内にトークンが存在するかどうかを確認するために、各軸要求をチェックしようとしています。トークンが見つからない場合にログインページに移動したい しかし、これはreactjsアプリの中にあります。これを実現させる方法は何ですか?reactjsアプリのaxiosインターセプタからリダイレクトする方法は?

axios.interceptors.request.use(function (config) { 
//If the header does not contain the token and the url not public, redirect to login 
var accessToken = null; 
if(sessionStorage.getItem('currentUserString')){ 
    accessToken = 'bearer '+JSON.parse(sessionStorage.getItem('currentUserString')).tokenDetails.accessToken; 
} 

var configURL = config.url; 
//if token is found add it to the header 
if (accessToken) { 
    if (config.method !== 'OPTIONS') { 
      config.headers.authorization = accessToken; 
    } 
} 
//otherwise if the request is not for login page/auth service/home redirect to login page 
else if(!isNotOpenPath(config.url)){ 

    //we may want to store current path in the cookies. This can be retrieved after login is successful 
    //WHAT TO DO HERE TO TAKE USER TO LOGIN PAGE IN THE REACT JS APP???? 
    }  
} 

リアクションアプリには、特にディスパッチはありません。 そのまま使用できますか document.location.href='\login'

+0

...あなたのアプリ内のルートを持っている方法は、あなたがこれを試みることができる移動するには、ルータ... を反応させるの使用していると思わ「をLOGINPATH」? – Hosar

+0

しかし、それがアプローチになります。右? reactjsの特定の方法は存在しませんか? –

答えて

関連する問題