Tôi muốn xác thực người dùng cửa sổ trong ứng dụng NodeJS
. Có bất kỳ tiện ích bổ sung nào cho điều này chưa? Có node-krb5
nhưng chưa hỗ trợ cửa sổ.Nodejs hoặc ExpressJS Xác thực Windows
Trả lời
Tôi đã thêm một bài đăng blog cho điều này tại đây http://hadenoughpi.wordpress.com/2013/04/16/node-js-windows-authentication-using-edgejs/ Tôi hy vọng đây là một trong những cách phù hợp.
Nếu bạn lưu trữ trên IIS với iisnode https://github.com/auth0/passport-windowsauth hoạt động độc đáo! Hộ chiếu-windowsauth đi kèm với một tích hợp quảng cáo nhưng nếu bạn chỉ muốn tên người dùng để thực hiện logic authorzation riêng của bạn, bạn có thể làm điều đó như thế này
web.config:
<system.webServer>
<iisnode promoteServerVars="LOGON_USER" />
</system.webServer>
server.js:
var passport = require('passport');
var WindowsStrategy = require('passport-windowsauth');
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use(new WindowsStrategy({
integrated: true
}, function(profile,done) {
var user = {
id: profile.id,
};
done(null, user);
}));
app.all("*", passport.authenticate("WindowsAuthentication"), function (request,response,next){
next();
});
sau đó bạn có thể truy cập vào userid vào đối tượng yêu cầu trong các tuyến đường khác của bạn:
app.get("/api/testAuthentication", function(request, response){
console.log(request.user.id + " is authenticated");
});
nếu bạn muốn thực hiện logic uỷ quyền của riêng bạn bằng cách sử dụng id người dùng mà bạn có thể định nghĩa một hàm trung như thế này:
app.get("/api/testAuthorization", hasRole("a role"), function(request, response, next){
console.log(request.user.id " is authenticated and authorized");
});
nơi hasRole trông như thế này:
function hasRole(role) {
return function(request,response,next){
//your own authorzation logic
if(role == "a role")
next();
else
response.status(403).send();
}
}
Nhưng khi chúng tôi đặt nút sau IIS, chúng tôi mất rất nhiều lợi ích của nút! – DaNeSh
Tôi có thể nhận được phản hồi '(request.user.id)' từ Url trong trình duyệt. nhưng khi tôi đang cố gắng truy cập cùng một URL, tôi gặp lỗi Lỗi trái phép. Tôi biết bài viết này là cũ nhưng nếu có thể, bạn có thể chia sẻ bất kỳ ví dụ mà bạn đã sử dụng loại điều? –
node-sspi
: tìm thấy nó dễ dàng và hiệu quả để sử dụng.
- 1. Nodejs Clustering và expressjs phiên
- 2. Move File trong ExpressJS/NodeJS
- 3. phiên thanh toán bù trừ trong MongoDB, expressjs, nodejs
- 4. Xác thực Windows Watin
- 5. Xác thực Windows trong .NET
- 6. SignalR hoặc NodeJS/Socket.IO?
- 7. Tìm kiếm một tham chiếu nodejs, expressjs & mongodb ứng dụng để sử dụng làm mẫu
- 8. Nodejs + expressjs phát lại yêu cầu sau khi máy chủ hết giờ
- 9. nodejs ExpressJS tuyến đường chỉ hoạt động đối với chỉ số
- 10. Xác thực Windows thủ công
- 11. JMeter với Xác thực Windows?
- 12. ldap nodejs xác thực thư mục hoạt động
- 13. HTTP Client dựa trên NodeJS: Cách xác thực yêu cầu?
- 14. Sử dụng PassportJS với Kết nối cho NodeJS để xác thực Người dùng Facebook
- 15. nơi để mã logic kinh doanh trong nodejs với expressjs, mongoosejs và redis
- 16. Mã xác thực Windows API rõ ràng
- 17. Xác thực Windows IIS trước Anonymous
- 18. Hiểu về Xác thực Windows WCF
- 19. Xác thực Windows với ASP.NET MVC
- 20. ExpressJS Chuyển biến sang JavaScript
- 21. Cài đặt NodeJS trên máy tính Windows?
- 22. Xác thực Windows Pass 2007 qua Excel
- 23. Xác thực Windows không hoạt động
- 24. Lỗi xác thực của Windows IIS
- 25. Xác thực Windows cho Intranet/Internet
- 26. mongodump/mongorestore từ NodeJS hoặc mongoose
- 27. Sử dụng path.join trên NodeJS trên Windows để tạo URL
- 28. nodejs hoặc envjs - dynamic jquery tmpl
- 29. Xác định xem một tập tin thực thi (hoặc thư viện) là 32 -hoặc 64 bit (trên Windows)
- 30. Cấu hình Tomcat để xác thực bằng Windows Active Directory
Điều này đánh bại mục đích của cửa sổ xác thực là đăng nhập một lần. Giải pháp của bạn yêu cầu chuyển tên người dùng, tên miền và mật khẩu. –