检查用户是否使用React JS

时间:2016-03-28 07:09:10

标签: javascript reactjs passport.js

我是React JS的新手。我正在使用React入门套件开发应用程序。以下是我的routes.js

/*! React Starter Kit | MIT License | http://www.reactstarterkit.com/ */
import React from 'react';
import Router from 'react-routing/src/Router';
import http from './core/HttpClient';
import App from './components/App';
import Login from './components/Login';
import SearchPage from './components/SearchPage';

const router = new Router(on => {
    on('*', async (state, next) => { 
       const component = await next();
       return component && <App context={state.context}>{component}</App>
    });

    on('/', async () => <Login />);  
    on('/login', async () => <Login />);        
    on('/search', async () => <SearchPage />);

    on('*', async (state) => {
    const content = await http.get(`/api   /content?path=${state.path}`);
    return content && <ContentPage {...content} />;
    });

    on('error', (state, error) => state.statusCode === 404 ?
    <App context={state.context} error={error}><NotFoundPage /></App> :
    <App context={state.context} error={error}><ErrorPage /></App>
    );
});

export default router;

现在我想将passport.js用于身份验证部分。我想仅在有效用户登录时重定向到/搜索(例如用户名:admin,passsword:admin)。 我尝试将以下与旧JQuery应用程序一起使用的代码片段包含到routes.js

import passport from 'passport';
import LocalStrategy from 'passport-local';
passport.serializeUser(function(user, done) {
  done(null, user);
});
passport.deserializeUser(function(user, done) {
 done(null, user);
});
passport.use(new LocalStrategy({
 usernameField: 'employeeNumber',
 passwordField: 'password'
},
function(username, password, done) {
 if(username === "admin" && password === "admin"){
  var user={"Name":"Admin"}; 
  return done(null, user);
 }
 else{
  return done(null, false); 
 }
}
));

我无法在routes.js中继续执行此操作。 我不想使用Flux。 有没有办法在我的申请中实施passport.js? 我是否正在尝试以正确的方式实施它?

请给我建议。提前谢谢。

0 个答案:

没有答案