Pau*_*ald 5 node.js reactjs passport.js react-router
我正在将身份验证添加到我的应用程序中,该应用程序使用 react-router。我在 react-router 中的auth-flow示例之后对客户端路由进行了模式化,但使用了 Passport 而不是示例使用的 localstorage。这一切正常。
下一步是保护我为 express in 定义的路由server.js。我可以将重定向发送到/#/login,但这感觉很脆弱。在服务器端将URL 导出到 react-router 提供的登录路由的最佳方法是什么?
这是我现在在 my 中的内容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');
});
Run Code Online (Sandbox Code Playgroud)
小智 2
在express上配置route,获取所有路由,并用react-router进行路由,这样,ejem。(我希望这可以帮助你)
服务器.js
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'))
Run Code Online (Sandbox Code Playgroud)
路线.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'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12738 次 |
| 最近记录: |