0
私はapp-react/redux/webpackの認証をビルドしています(bcrypt、jwtを使用しています)、ログインコンテナに認証機能を接続する際に問題が発生しています(ログインフォーム私は以下の認証ファイルの機能を実行し、ユーザをdbにポストしたいと思っています)。react/reduxアプリケーションでの認証エラー
私の認証コード(下の)からログインコンテナにサインイン関数( '{./Auth/controllers/authentication'からインポート{signin})をインポートしようとすると、厄介なエラーが発生します。私は間違って何をしていますか?ログインモード/画面内で認証機能を使用するにはどうすればよいですか?
ERROR in ./~/bcrypt-nodejs/bCrypt.js
Module parse failed: /Users/myname/Desktop/SaltyEndzone/node_modules/babel-loader/index.js?{"presets":["es2015","react"]}!/Users/myname/Desktop/groupname/node_modules/bcrypt-nodejs/bCrypt.js Line 293: Octal literals are not allowed in strict mode.
You may need an appropriate loader to handle this file type.
| rounds = r1 + r2;
| real_salt = salt.substring(off + 3, off + 25);
| password = password + (minor >= 'a' ? "\000" : "");
|
| var buf = new Buffer(password);
@ ./public/Login/Auth/models/user.js 6:13-37
だから、(エラーのいずれか)だと、今ここでのコードは、(以下、認証、およびログインが同様モーダル)です:
//authentication.js
const jwt = require('jwt-simple');
const config = require('../config');
const User = require('../models/user');
function tokenForUser(user) {
const timestamp = new Date().getTime();
return jwt.encode({ sub: user.id, iat: timestamp }, config.secret);
}
exports.signin = function(req, res, next) {
res.send({token: tokenForUser(req.user)});
}
exports.signup = function(req, res, next) {
const email = req.body.email;
const password = req.body.password;
if (!email || !password) {
return res.status(422).send({error: 'You must provide email and password'});
}
User.findOne({email: email }, function(err, existingUser) {
if(err) {
return next(err);
}
if (existingUser) {
return res.status(422).send({error: 'Email is in use'})
}
const user = new User({
email: email,
password: password
});
user.save(function(err){
if(err) {
return next(err);
}
res.json({token: tokenForUser(user)});
});
});
}
そして、ここでは、ログインコードです:
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Button, Modal } from 'react-bootstrap';
import { signin } from './Auth/controllers/authentication';
export default class Login extends Component {
render() {
const { openLogin, closeLogin, login } = this.props;
return (
<div>
<div className="login-corner">
<span className="login" onClick={openLogin}>LOGIN</span>
</div>
<Modal className="modal-dialog" bsSize="small" show={login.login} closeTimeoutMS={150}>
<Modal.Body>
<Modal.Title className="login-title">Login</Modal.Title>
</Modal.Body>
<div className="login-input">
<div className="form-group">
<div className="user-input">
<i className="glyphicon glyphicon-user"></i>
<input type="email" className="form-control" placeholder="Username"/>
</div>
<div className="password-input">
<i className="glyphicon glyphicon-lock"></i>
<input type="password" className="form-control" placeholder="Password"/>
</div>
</div>
</div>
<div className="login-button">
<Button className="btn btn-info" onClick={closeLogin}>Welcome Back!</Button>
</div>
<div className="register-button">
<a className="register-link" ui-sref="register" onClick={closeLogin}>Not a member? Sign up!</a>
</div>
</Modal>
</div>
);
}
}