0

我正在使用nodejs-express-passport解決方案進行facebook身份驗證。我的目標是,如果我的形象簡直是animal.png位於/圖像我會如何修改 以下時自動從靜態目錄上傳一張圖片,一個用戶登錄成功。 瞬間節點 - 表達服務器代碼來完成這個?修改Nodejs-Express-Passport服務器以自動上傳圖像

var express = require('express'); 
var passport = require('passport'); 
var Strategy = require('passport-facebook').Strategy; 



passport.use(new Strategy({ 
    clientID: process.env.CLIENT_ID, 
    clientSecret: process.env.CLIENT_SECRET, 
    callbackURL: 'http://localhost:3000/login/facebook/return' 
    }, 
    function(accessToken, refreshToken, profile, cb) { 

    return cb(null, profile); 
    })); 

passport.serializeUser(function(user, cb) { 
    cb(null, user); 
}); 

passport.deserializeUser(function(obj, cb) { 
    cb(null, obj); 
}); 


var app = express(); 

app.set('views', __dirname + '/views'); 
app.set('view engine', 'ejs'); 


app.use(require('cookie-parser')()); 
app.use(require('body-parser').urlencoded({ extended: true })); 
app.use(require('express-session')({ secret: 'keyboard cat', resave: true, saveUninitialized: true })); 


app.use(passport.initialize()); 
app.use(passport.session()); 


app.get('/', 
    function(req, res) { 
    res.render('home', { user: req.user }); 
    }); 

app.get('/login', 
    function(req, res){ 
    res.render('login'); 
    }); 

app.get('/login/facebook', 
    passport.authenticate('facebook','user_photos')); 

app.get('/login/facebook/return', 
    passport.authenticate('facebook', { failureRedirect: '/login' }), 
    function(req, res) { 
    res.redirect('/'); 
    }); 

app.get('/profile', 
    require('connect-ensure-login').ensureLoggedIn(), 
    function(req, res){ 
    res.render('profile', { user: req.user }); 
    }); 

app.listen(3000); 
+0

你不允許發佈/上傳照片_automatically_ - 用戶必須主動觸發。 – CBroe

回答

0

對於res.render('profile', {user: req.user, image: 'my image string location'})與HTML 那麼就傳遞{{圖像}},無論你正試圖從SRC圖像。

我不是超級熟悉EJS模板,但它會是這個樣子:

<img src={{image}} alt="MyAnimal.png" style="width:304px;height:228px;"> 

還是你希望它只是在屏幕上閃爍?如果是這種情況,我認爲你可以用閃光模塊做這樣的事情。

編輯:

,因爲這是爲桌面數據發佈至Facebook並不僅僅是雨後春筍般冒出來從服務器上的圖片的問題,我會在這裏提出這個了。

Passport通過身份驗證握手允許用戶通過登錄訪問您的網站,但它不會打開所有的Twitter/Facebook/Google的API,您需要自己製作或使用預先登錄像這個Facebook API一樣構建。

https://www.npmjs.com/package/fb

+0

忘了添加,我沒有上傳圖片到節點服務器,而是上傳本地桌面圖片到facebook(用戶登錄後) –

+0

您必須使用Facebook的API將圖片加載到Facebook。只要我知道進行身份驗證,Passport只會進行握手。你看過Facebook的SDK嗎?使用這樣的東西https://github.com/Thuzi/facebook-node-sdk –

+0

謝謝。將嘗試,但該模塊是2歲。這些是我引用的代碼模塊 https://github.com/jaredhanson/passport-facebook https://github.com/passport/express-4.x-local-example –