私は、エクスプレステンプレートを使用してangular.js + node.js
とmongodb
に基づいて簡単なブログのウェブサイトに取り組んでいます。 POSTメソッドで角度コントローラーからusers.js
という名前のAPIに$http
でヒットしました。ログインはpassport.authenticate
メソッドを使用して認証されています。 users.js
にパスポート・ローカル・ログイン戦略が必要です。
しかし、動作していません。ログインサービスコードとノードユーザーのapiコードがあります。 角度とノードでpassport.js
をどのように使うことができますか?サービス角度ノードアプリでパスポートを使用する方法は?
app.service('Auth',function($location,$http,$localStorage){
var userLogin ;
return{
setLogIN:function(email,password){
$http({
method: 'POST',
url: '/users/login', //users.js having node routing.
data: {email:email, password:password},
})
ユーザに
router.post('/login',passport.authenticate('local', {
// use passport-local for authentication
successRedirect : '/profile',
failureRedirect : '/login',
failureFlash : true
}));
パスポートローカル戦略をルーティングノード
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(
function (username, password, done) {
User.findOne({username: username}, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {alert: 'Incorrect username.'});
}
if (user.password != password) {
return done(null, false, {alert: 'Incorrect password.'});
}
return done(null, user);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
function isAuthenticated(req,res,next){
if(req.isAuthenticated())return next();
res.redirect('/');
}
スルー
角度ルーティング
パスポートを使用して認証したいが、適切な認証を維持するためにクライアント側のテンプレート/ルーティングを使用する。
誰かが正しい方向に向けることができますか?私がしていることが完全に間違っているかどうか教えてください。
編集:私は私のコードを取得していますエラーはデフォルトでページ
TypeError: POST http://localhost:3000/users/login 500 Internal Server Error
Not a valid User
後もあなたの認証戦略のコードを取得します。 – ayushgp