Tag: 基本authentication

validationcaptcha以及passport.js

是否有可能在调用passport.jsvalidationfunction之前validationgoogle recaptcha是否成功? 我之间select一个或另一个之间卡住,因为都使用asynchronouscallback来validation,我不能在他们之间相互。 function verifyRecaptcha(key, rq, rs, pa, callback) { https.get('https://www.google.com/recaptcha/api/siteverify?secret=' + SECRET + '&response=' + key, function (res) { var data = ''; res.on('data', function (chunk) { data += chunk.toString(); }); res.on('end', function () { try { var parsedData = JSON.parse(data); // return true; callback(parsedData.success, rq, rs, pa); } catch (e) { // return […]

使用JWT令牌。 有更好的方法吗?

我通过nJWT包使用JWT令牌,使用socket.io-jwt包将我的用户validation到我的Socket.io。 或多或less,代码看起来像这样。 用户通过HTML表单发送POST请求来播放/login以生成JWT令牌。 然后,socket.io客户端使用该令牌进行初始化。 /** * Create Express server. */ const app = express(); const http = require('http').Server(app); const io = require('socket.io')(http); const socketioJwt = require('socketio-jwt'); app.set('jwt.secret', secureRandom(256, { type: 'Buffer' })); app.post('/play/login', (req, res) => { // validate user's req.body.email and req.body.password const claims = { iss: "http://app.dev", // The URL of your service […]

麻烦authentication

在使用护照本地策略执行我的restful apiauthentication时,我正面临一个混淆问题。 注意:当我在index.js中完成所有工作时,我的authentication工作已经成功。 但我想在类中使用更好的代码分离。 我有一个passport.js模块 // config/passport.js // load all the things we need var LocalStrategy = require('passport-local').Strategy; // load up the user model var mysql = require('mysql'); var dbconfig = require('./database'); var connection = mysql.createConnection(dbconfig.connection); module.exports = function(passport) { // passport needs ability to serialize and unserialize users out of session passport.serializeUser(function (user, done) […]

JWTauthentication系统使用nodejs在网页上

最近我试图build立一个pipe理面板的JWTauthentication系统来pipe理login用户的简单目的,如RESTFUL API或实时数据库(Socket.io)在移动或web使用。但是有几个问题,过度。 现在的状态是我能够使用nodejs创build一个JWT令牌并将其传递到前端。 但之后,我不知道如何处理前端的令牌。 这里是问题 如果我正在使用React,Redux或ReactNative,可以将令牌保存在Redux状态,并通过ajax(Axios)请求调用它,如果不是应该在哪里存储? 如果我只是想使用它而不是任何一种单页应用程序框架的HTML,我应该在哪里存储令牌(本地存储,cookies,窗口sessionStorage,还有什么别的?) 我听说会话和cookie不是存储令牌的好地方,因为它们容易受到不同的攻击,我怎么能防止呢? 这是我卡住的最大的一点,我已经创build了一个表单供用户login,按下loginbutton后,我会做一个ajax请求,以获得令牌,收到令牌后,应该如何我保存令牌(根据q2),并通过设置标题{'x-access-token':token}将用户redirect到受保护的路由? 如果我想让用户注销,那么有什么正确的方法呢? (只需从客户端存储中删除令牌?) 我发现了很多有关创build和刷新令牌的教程,但我找不到有关获取令牌后应该做什么的任何教程? 有什么好的build议,我可以沿着? 我知道这很奇怪,但我觉得我错过了整个authenticationstream程中的一些核心概念。 任何人都可以根据我上面提出的问题来指出它吗? 对不起,我的英语不好,我尽我所能用正确的方式说出来。 这是我的github回购的问题https://github.com/xylops/backend 感谢您阅读本文

firebase是否为每个admin.auth()。verifyIdToken(idToken)发出networking请求?

我有一个Firebase客户端(浏览器)。 我也有一个后端服务器,我确定用户使用firebase令牌login。 使用以下Firebase文档使用Firebase Admin SDKvalidationID令牌 ,我成功使用admin.auth().verifyIdToken(idToken)来validation我的节点服务器上的令牌。 然而,有一件事关注我。 我知道firebase使用证书来validation令牌。 这是否意味着每次我调用admin.auth().verifyIdToken(idToken)一个传出networking请求/networking事务是从我的节点服务器? 我很担心,因为如果是这样,我会考虑这个昂贵的。 我试图使用tcpdump,但交通是很多,并要神秘地告诉。

Node.js中使用http.client进行摘要式身份validation的问题

我试着在使用http.get的时候实现摘要请求, 每次都得到“ 摘要authentication失败 ”的消息:( var hashlib = require('hashlib'), http = require('http'), url = require('url'), qs = require('querystring'), hashlib = require('hashlib'); var username = 'user'; var password = 'pass'; var options = { 'host' : 'username.livejournal.com', 'path' : '/data/rss?auth=digest' }; http.get(options, function(res) { res.setEncoding('utf-8'); // got 401, okay res.on('data', function(chunk) { var authResponseParams = qs.parse(res.headers['www-authenticate'].substr(7), ', […]

SocketIO + MySQLauthentication

我试图通过socketIO在MySQL数据库上进行身份validation。 我build立了连接,可以查询结果没有问题,但由于某种原因,我不能通过是否用户被authentication到connection部分的socketio。 这个想法是我的应用程序有主机和观众。 如果连接到应用程序而不在QueryString发送密码,则该应用程序假定其为查看器并接受连接。 如果发送密码,则会对数据库进行检查并接受/拒绝连接。 我想要一个variables传入connection所以我可以在我的应用程序事件中使用它。 这是我迄今为止,但显然data.query['ishost']没有传入应用程序。 sio.configure(function() { sio.set('authorization', function (data, accept) { UserID = data.query['username']; try { UserID = UserID.toLowerCase(); } catch(err) { return accept("No WebBot Specified. ("+err+")", false); } // if not sending a password, skip authorization and connect as a viewer if (data.query['password'] === 'undefined') { return accept(null, true); } // […]

hapi-auth-cookie不设置cookie

对于我的节点应用即时通讯使用铃和hapi-auth-cookie插件来使用雅虎api。 使用当前的代码,我可以用雅虎进行身份validation,然后redirect到主页。 但是,一旦我到达主页,request.auth似乎是空的。 从我所知道的情况来看,我正在做所有的事情,但是一旦我回到主页,我就没有authentication了。 任何帮助表示赞赏! 这是我得到的: var Path = require('path'); var Hapi = require('hapi'); var cookieSession = require('cookie-session'); var serverOptions = { views: { engines: { html: require('handlebars') }, path: Path.join(__dirname, './app/www/public/pages'), layoutPath: Path.join(__dirname, './app/www/public/pages') } }; var server = new Hapi.Server(8003, serverOptions); server.pack.register([ require('bell'), require('hapi-auth-cookie') ], function(err) { if (err) { throw err; } […]

如果Passport身份validation失败,如何在redirect时保留表单数据?

我正在尝试使用护照在网页上对用户进行身份validation。 一切正常,除非身份validation失败,并且护照将用户redirect到同一个路由,则表单上的所有数据都将丢失。 有没有一种方法来保存数据并将其传回给表单。 我在routes.js中有以下内容 // ===================================== // SIGNUP ============================== // ===================================== // show the signup form app.get('/signup', function(req, res) { // render the page and pass in any flash data if it exists signup.isAuthenticated = req.isAuthenticated(); signup.user = req.user; signup.message = req.flash('signupMessage'); res.render('signup', signup); }); // process the signup form app.post('/signup', passport.authenticate('local-signup', { successRedirect : […]

Express服务静态文件的基本authentication

我正在使用Express 4框架,我需要基本身份validation来提供静态文件。 这是我现在所拥有的: app.use('/files', auth); app.use('/files', express.static(path.join(__dirname, 'files'))); 这很好,如果我尝试访问/文件,但如果我写URL ../files/somefile.txt身份validation不需要,我可以访问该文件。 我想要“文件”目录下的所有文件只能通过身份validation的用户访问。