2017-09-20 9 views
0

私は、passportjsを使ってregister/loginを使って平均スタックアプリケーションを作っています。これは、angle2に変更すると(別のものはangularjsでした)バックエンド側とiそれがうまくいくと思うが、私はそれを正面側でテストする方法を知らない。私はそれが<a href="">のURLで何かでなければならないことを知っている。しかしパスポートが私に与えるルートを置くと、/auth/facebook、私のアプリケーションは何もしない.. 。うまくそれが何かは、ホームページに私を送っん: はここに私のコードは、バックエンド側で、これまではCpassportjsと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 POST要求を行います(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' 
    })); 
} 
関連する問題