2012-02-09 28 views
23

Trong nodeJS Tôi đang sử dụng mô-đun hộ chiếu để xác thực. Tôi muốn hiển thị tên người dùng của người dùng hiện đã đăng nhập.Nodejs Tên người dùng hiển thị hộ chiếu

Tôi đã thử các mã sau:

passport.displayName 

Localstrategy.username 

Và để biết thêm vui lòng xem thêm: http://passportjs.org/docs/profile

Nhưng đó không phải đang làm việc. Bất kỳ đề xuất?

Cảm ơn

Trả lời

48

Người dùng (như được cung cấp bởi các xác minh gọi lại), được thiết lập như một tài sản theo yêu cầu tại req.user.

Bất kỳ thuộc tính nào của người dùng có thể được truy cập thông qua đối tượng đó, trong trường hợp của bạn là req.user.usernamereq.user.displayName.

Nếu bạn đang sử dụng Express, và muốn để lộ tên người dùng như là một biến trong một mẫu, mà có thể được thực hiện khi vẽ:

app.get('/hello', function(req, res) { 
    res.render('index.jade', { username: req.user.username }); 
}); 
+2

Tôi đang sử dụng đoạn mã sau để đăng nhập: app.post ('/ đăng nhập', passport.authenticate ('địa phương', {successRedirect: '/', failureRedirect: '/ đăng nhập'}) ); Tôi không thể truy cập tên người dùng req.user.us trên trang '/'. Làm thế nào tôi có thể truy cập nó trên trang đó? –

+1

Thuộc tính 'req.user' có sẵn trên trang đó không? Nếu không, có vẻ như hỗ trợ phiên không được bật. Hãy chắc chắn 'middle.use (passport.session())' middleware, cũng như cấu hình phần mềm trung gian phiên Express. Xem phần "Phần mềm trung gian" của trang này: http://passportjs.org/guide/configuration.html –

+0

Nó hoạt động, cảm ơn! –

3

tôi đã tạo ra một helper xem đơn giản để có thể truy cập tình trạng xác thực và thông tin

var helpers = {}; 

helpers.auth = function(req, res) { 
    var map = {}; 
    map.isAuthenticated = req.isAuthenticated(); 
    map.user = req.user; 
    return map; 
} 

app.dynamicHelpers(helpers); 

Sau khi làm điều đó bạn sẽ có thể acess đối tượng auth trên quan điểm của bạn, ví dụ auth.user.xxxx người dùng.

+8

Làm thế nào để bạn gọi người trợ giúp này? Và từ đâu bạn gọi nó? Cảm ơn –

Các vấn đề liên quan