2016-06-29 4 views
4

反応ルータを使用するアプリケーションに認証を追加します。私は反応ルータの例であるauth-flowの後にクライアントルーティングをパターン化しましたが、例で使用するlocalstorageの代わりにパスポートを使用しました。これはすべて正常に動作します。私はどのようにして反応ルータを特急からリダイレクトするのですか?

次のステップは、私がserver.jsで表現するために定義しているルートを保護することです。私は/#/loginにリダイレクトすることができますが、これは脆いと感じています。どのようなURLをサーバーの側でを派生させるための最善の方法はログインルートに反応ルータによって提供されますか?

は、ここで私は働く私のserver.js、中に今持っているものだが、脆い感じ:急行で

app.get('/protected', 
    // redirecting to #/login seems bad: what if we change hashhistory, etc. 
    passport.authenticate('local', { failureRedirect: '/#/login'}), 
    function(req, res) { 
    res.render('whatever'); 
    }); 
+0

より多くのコード例。 – aarosil

+0

フィードバックを送信する時間ですか? –

答えて

1

コンフィグルートは、すべてのルートを取得し、このように、反応し、ルータとejemをルーティングします。 (私はこれがあなたを助けることができると思います)

server.jsあなたはPLSをしようとしたものの

import express from 'express' 
import path from 'path' 

const app = express(); 

app.use(express.static(__dirname + '/public')); 
app.get('*', (req,res) => res.sendFile(path.join(__dirname+'/public/index.html'))).listen(3000,() => console.log('Server on port 3000')) 

routes.jsx

import React from 'react' 
import ReactDOM from 'react-dom' 
import { Router, Route, Link, browserHistory, IndexRedirect } from 'react-router' 

import App from '../views/app.jsx' 

const Routes = React.createClass({ 
    render(){ 
     return(
      <Router history={ browserHistory }> 
       <Route path="/" component={App}> 
        <IndexRedirect to="/dashboard"/> 
        <Route path="dashboard" name="Dashboard" component={App} /> 
        <Route path="pages" name="Pages" component={Pages} /> 
        <Route path="/:Id" component={Page}/> 
        <Route path="/:Id/inbox" name=':ids' component={Inbox}/> 
       </Route> 
       <Route path="*" component={App}> 
        <IndexRedirect to="/dashboard" /> 
       </Route> 
      </Router> 
     ); 
    } 
}); 
ReactDOM.render(<Routes />, document.getElementById('app')) 
関連する問題