Tag: 基本authentication

我们如何在node.js中使用Firebase Auth创build用户?

我正在尝试在nodejs中使用Firebase身份validation创build用户帐户。 它不起作用,我不知道为什么。 这里是代码和nodejs产生的错误: var config = {…….}; // i can't share the config var app = firebase.initializeApp(config); var db = app.database(); var auth = app.auth(); auth.createUserWithUsernameAndPassword("anemail@gmail.com", "@NewPassWord").then( function(user){ console.log(user);}, function(error){ console.error(error);} ); 由NodeJS生成错误: TypeError: Object [object Object] has no method 'createUserWithUsernameAndPassword' at Object.<anonymous> (/home/antonio/Projects/firebase/app.js:20:6) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load […]

如何使用Django身份validation在Node应用程序中对用户进行身份validation?

我的主要应用程序是一个Django应用程序,但是,对于一些实时的东西,我想使用Node / Socket.IO。 我使用Redis做一些从Django到Node的pub / sub(然后到各种客户端)。 棘手的部分是我如何对Django身份validation的Node用户进行身份validation? 在我的Node应用程序中,我有: io.on('connection', function (socket) { const subscribe = redis.createClient(); var userId = authenticateAndGetUserId(); subscribe.subscribe(userId + ':feed-items'); subscribe.on('message', function (channel, message) { socket.emit('feed-items', JSON.parse(message)); }); }); 所以我的问题是什么是实施authenticateAndGetUserId好策略? 会话由MySQL支持,所以我可以在那里通过。 只是好奇,如果有更好的办法去做。

Laravel 5:使用Laravel会话数据的Socket.io客户机authentication

我想基于由Laravel创build的客户端会话数据来validationsocket.io客户端。 我想到的是: A – 从客户端发送用户名和电子邮件到服务器; B – 在用户login后,将数据存储在我的socket.io服务器所需的Redis中,然后根据会话Cookie ID在Node.js中读取。 如果我更喜欢这种方法sessionId -> "email, name"我可能必须在Redis中存储sessionId -> "email, name" 。 C – 在Laravel中使用Redis会话驱动程序,解码由Laravel设置的Cookie,从Node.js访问Laravel会话值,对其进行反序列化和解码; 方法A显然非常不安全,只能用来certificate概念。 方法C似乎更好,因为我不必复制或pipe理会话数据,但只能解码它。 然而,这种方式将我的应用程序与Laravelpipe理会话的实现细节结合起来,因此似乎不合适。 方法B看起来更有希望,实现起来更简单。 然而,使用方法B意味着我必须自己pipe理一些会话数据,以便socket.io能够读取它。 这样做可能会使我在Redis中存储的Laravel会话数据和会话数据相互不一致,而这会在某个时间点发生。 在某些极端的情况下,例如一个过期的会话ID可以被重用,并且一些socket.io客户端将被错误地authentication为另一个用户。 我现在不能想到更微不足道的情况,但是由于这种情况,我认为有可能存在这种情况,安全和用户体验都可能受到损害。 在socket.io应用程序中基于Laravel会话数据实现用户身份validation的更优雅,健壮和安全的方法是什么? 如果没有更好的方法,我认为方法B是最好的,我可以做些什么来提高使用Redis和Laravel会话数据pipe理的会话数据之间的一致性。 就我所能概括的而言,实际上访问Laravel和php之外的Laravel会话数据,并通过sessionId,电子邮件和用户名来识别客户端。

最安全的node.js / expressauthentication机制

我想用express来开发一个node.js应用程序。 该应用程序将支持多个访问级别。 所有用户将通过用户名和密码进行authentication。 我一直使用的authentication方法如下: 用户已通过用户名和密码进行身份validation 使用会话支持安装Express后,我使用request.session对象来存储所有用户的信息和证书,并且每当新的调用从同一用户进入服务器时,我都会检查它 这个过程有多安全? 它使用cookies吗? 它是否有漏洞? 通过websockets和socket.io或其他不同方式控制会话更安全吗? 提前致谢

如何使用htaccess的替代密码保护nodejs应用程序

我有一个与www.domain.com aws托pipe的网站,有两个子域test.domain.com和stage.domain.com。 我正在使用MEAN进行开发,现在我想要的是密码保护我的子域test.domain.com和stage.domain.com,但以类似的方式,我们在使用htaccess的PHP中。 现在我个人喜欢这个htaccess方法,因为在这个方法中你的应用程序的代码将是相同的,authentication将被htaccess添加。 任何想法如何在不改变应用程序代码的情况下在nodejs中做到这一点,以便我可以在将来如果我想要删除它 。 PS:只有提示欢迎。

firebase.auth()。createUserWithEmailAndPassword Undefined不是一个函数

我正在关注用户pipe理的Firebase文档 var firebase = require('firebase'); // Initialize Firebase firebase.initializeApp({ serviceAccount: "./<mysecreturledittedout>.json", databaseURL: "https://<mydatabaseurljusttobesafe>.firebaseio.com" }); router.get('/create', function(req, res){ var email = req.email; var password = req.password; firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(err){ // LINE 27 CRASH var errorCode = err.code; var errorMessage = error.message; console.log("ERROR"); console.log(errorCode, errorMessage); }); }); 我得到以下错误 undefined is not a function TypeError: undefined is not a […]

在GraphQL服务器中实现访问控制的好模式是什么?

背景: 我有一套模型,其中包括用户和其他各种模型,其中一些包含对用户的引用。 我通过Graffiti生成的GraphQL API公开了这些模型,Mongo数据库使用graffiti-mongoose适配器作为后台。 我当前的REST API(我正在迁移到GraphQL)使用JSON Web令牌来validation用户,并在服务器端有一些自定义权限逻辑来处理访问控制。 问题: 我想根据当前login的用户限制对GraphQL中的对象的访问。 有些模型应该可以通过未经authentication的调用进行读取。 大多数其他模型只能由创build它们的用户访问。 通过Graffiti生成的APIpipe理对象访问控制的最佳方式是什么? 一般来说,GraphQL的访问控制是否有良好的模式? 特别是,有没有什么好的例子或图书馆与涂鸦做呢? 笔记: 据我所知, 已经实施了涂鸦 – mongoose的前后钩子,并且可以用它们进行基本的二进制validation。 我想看看更详细的访问控制逻辑如何在GraphQL API中使用。 将来,我们需要支持像pipe理员那样可以访问由特定用户组创build的模型实例的东西(例如,其用户的机构包括pipe理员)。

什么是sails.js最好的authentication方法?

我正在寻找sails.js v0.10 rc8中实现身份validation的最佳方法。 是否有一个由sails.js定义的正式方法来实现这个? 我发现像sails-generate-auth模块,但它的文档不是很清楚。 我也发现像http://sethetter.com/user-authentication-with-sails-js/这样的教程,但似乎有一些兼容性问题与风帆v0.10

用户使用socket.io进行身份validation

我已经红了这个教程: http : //howtonode.org/socket-io-auth 。 它演示了如何使用express和socket.io来authentication用户。 但有没有一种方法来validation用户只使用socket.io而不需要明示? 编辑: 对于会话处理,我使用RedisStore( https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO )。 还剩下什么是创build身份validationcookie的模块。 有谁知道一个socket.io实现我可以使用创build一个身份validationCookie,就像你可以做会话处理?

使用Passport进行身份validation后创build新会话

我已经创build了一个简单的身份validation应用程序与护照(见下面的代码)。 通过会话中间件进行expression,为请求客户端没有会话的每个请求创build一个会话。 我想只在login后分配会话或login后创build一个新的会话。 这是因为我最终将通过HTTPS进行login,并希望阻止黑客劫持已通过身份validation的用户的会话。 这是我的服务器代码: // Server.js configures the application and sets up the webserver //importing our modules var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); var MongoStore = require('connect-mongo')(express); var configDB = require('./config/database.js'); //Configuration of Databse […]