2016-07-04 12 views
0

レンダリングサーバーの間のセッションを持続私が反応するため、以下のスターターレポを使用して問題に出くわした:私は認証のためにsessionStorageをウッシングいreact-webpack-nodeストア/

及びこれによるスターターのサーバーレンダリングの性質のために、私はアクセスすることができませんことを実現このセッションデータはアプリが私のルートを保護するために、つまりサーバー上でレンダリングされている間、私は仕事に次の期待:

import React from 'react' 
import { Route, IndexRoute } from 'react-router' 

import App from 'containers/App' 
import LoginPage from 'containers/LoginPage' 
import DashboardPage from 'containers/DashboardPage' 

export default (store) => { 
    const requireAuth = (nextState, replace, callback) => { 
    const token = sessionStorage.getItem('token') 
    if (!token) { 
     replace({ 
     pathname: '/login', 
     state: { nextPathname: nextState.location.pathname } 
     }) 
    } 
    callback() 
    } 

    const redirectAuth = (nextState, replace, callback) => { 
    const token = sessionStorage.getItem('token') 
    if (token) { 
     replace({ 
     pathname: '/' 
     }) 
    } 
    callback() 
    } 

    return (
    <Route path='/' component={App}> 
     <IndexRoute component={DashboardPage} /> 
     <Route path='/login' component={LoginPage} onEnter={redirectAuth} /> 
     <Route path='/dashboard' component={DashboardPage} onEnter={requireAuth} /> 
     <Route path='/logout' component={LoginPage} /> 
    </Route> 
) 
} 

しかし、そうではないと私は、これはセッションがサーバー上で未定義さが原因であると考えています。

答えて

1

既に問題を指摘しています。クッキーはクライアントとサーバーの両方からアクセス可能であるため、トークンを格納するためにCookieを使用することがあります。