2017-09-20 2 views
0

봐, 내가/로그인 passportjs를 사용하여 등록/로그인 스택 애플 리케이션을 만들었습니다, 그리고 괜찮 았어, 내가 angular2로 변경 (다른 하나는 angularjs에 있었다) 내가 백엔드 쪽과 내가 만들었어요 그것이 작동하지만 어쩌면 내가 fotted 측면에서 테스트하는 방법을 모르겠다, 내가 URL을 가진 뭔가가있다 는걸 알고있다. <a href="">하지만 여권이 나에게주는 경로를 넣을 때 : /auth/facebook, 내 응용은 아무 것도하지 않는다. . 잘 뭔가, 홈페이지에 저를 보내 않습니다 여기 내 코드는 백엔드 측에 지금까지는 C구현하는 passportjs 및 angular4

const FacebookStrategy = require('passport-facebook').Strategy; 
const session   = require('express-session'); 
const secret   = require('../config/database') 
const user    = require('../models/user') 

module.exports = function(app, passport){ 
     app.use(passport.initialize()); 
     app.use(passport.session()); 
     app.use(session({ 
     secret: 'keyboard cat', 
     resave: false, 
     saveUninitialized: true, 
     cookie: { secure: false } 
     })); 

     passport.serializeUser(function(user, done) { 
     token = jwt.sign({email: user.email}, secret, {expiresIn : '24h'}); 
     done(null, user.id); 
    }); 

    passport.deserializeUser(function(id, done) { 
     User.findById(id, function(err, user) { 
     done(err, user); 
     }); 
    }); 
    passport.use(new FacebookStrategy({ 
     clientID: '350645212059140', 
     clientSecret: '8a990aec6db37cc3535f4223c235c427', 
     callbackURL: "http://localhost:4200/auth/facebook/callback", 
     profileFields: ['id','displayName','email'] 
     }, 
     function(accessToken, refreshToken, profile, done) { 
     console.log(profile); 
     // User.findOrCreate(..., function(err, user) { 
     // if (err) { return done(err); } 
     // done(null, user); 
     // }); 
     done(null, profile) 
     } 
    )); 
    app.get('/auth/facebook',passport.authenticate('facebook', { scope: 'email' })); 
    app.get('/auth/facebook/callback' , passport.authenticate('facebook', {failureRedirect: '/login'}), function(res, res){ 
     if (err) { 
     console.log(err) 
     }else{ 
     res.send('wi') 
     } 
    }) 
    return passport; 
} 

내 질문에, 내가 프런 측에서이를 구현하는 방법을 기억한다 각 4 :)

답변

0

여기에 대한 의사 코드입니다.

1 단계 : ngSubmit을 사용하여 양식을 제출할 때 passportLogin()과 같은 함수를 호출하십시오.

2 단계 : 이제 구성 요소에이 기능을 사용하고 노드 js (express js) URL에 대한 HTTP 게시물 요청 (예 : auth/login)을 수행하십시오.

단계 3 : 서버 측에서 물품 라우팅

var express = require('express'), 
    router = express.Router(); 
module.exports = function(passport){ 
router.post('/login', passport.authenticate('local-login', { 
     successRedirect: '/auth/success', 
     failureRedirect: '/auth/failure' 
    })); 
}