Tag: 基本authentication

如何使用Firebase实施Steamvalidation?

我发现的只是这个旧的答案: https://groups.google.com/forum/#!topic/firebase-talk/rApG8QQd6t4 同事是否知道任何信息,或者Firebase工程师能否提供更详细的答案? 我目前正在尝试使用此库来validation用户使用Steam: https://github.com/liamcurry/passport-steam 然后使用Firebase自定义令牌在我的Firebase身份validation系统中获取用户。 我不知道这是否正确。 无论如何,我卡住了。 编辑: 这是我现在的代码: app.js var passport = require('passport'); var SteamStrategy = require('passport-steam').Strategy; app.use(passport.initialize()); passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) { done(null, obj); }); passport.use(new SteamStrategy({ returnURL: 'http://localhost:8080/users/steam/return', realm: 'http://localhost:8080/', apiKey: steamKey.steam, stateless:true }, function(identifier, profile, done) { profile.identifier = identifier; return done(null, profile); } )); users.js […]

LTI使用Node.js启动身份validation

我使用express.js框架创build了一个简单的“hello-world”web应用程序。 我希望应用程序符合IMS-LTI标准,以便moodle和其他学习pipe理系统可以将其作为外部工具启动。 但是,我不明白如何在我的应用程序(它使用oauth)来validationLTI启动,而且我也找不到任何express.js / node.js的例子。 我发现存在passport-lti节点模块( https://www.npmjs.org/package/passport-lti ),但作为节点的noob只是不理解稀疏的文档。 我已经使用passport.js创build本地身份validation – 使用此video( https://www.youtube.com/watch?v=twav6O53zIQ ),我希望为LTI启动身份validation类似的帮助… 任何帮助表示赞赏。 干杯,奥利

在Heroku上制作一个NodeJs应用程序

我试图在Heroku上创build一个NodeJS应用程序,这样只有开发人员才能看到它。 有没有简单的方法来做到这一点,如基本身份validation? (我一直发现的所有解决scheme都针对Ruby应用程序)。

在NodeJS后端使用JWT和Active Directoryauthentication

我正在构build一个由Angular前端和Node.JS后端组成的Intranet Web应用程序。 应用程序需要使用企业Active Directory进行身份validation和授权。 我正在考虑如何以一种安全的方式最好地实现这一点。 我计划使用Active Directory节点模块实际与AD通信,以便在用户login时进行身份validation,并检查某些受限操作的安全组成员身份等。 但是,我不太确定授权我的后端端点的最佳方式是什么。 AD模块不提供任何令牌/票证,即使我假设Kerberos用于实际的身份validation过程。 在我开发的其他已validation的应用程序中,当用户login时,我生成了一个jsonwebtoken,然后在每个后端path中传递并validation该标记,在对AD进行身份validation时也是一个好主意? 编辑:问题的第二部分催生单独的线程: JWT令牌的服务器端处理的最佳做法 另外,对于实际validation令牌的最佳实践,我有一个更为普遍的关注。 假设用于JWT生成的“秘密”被破坏(在我的场景中,许多人可能有权访问系统的源代码,但不能访问系统本身)。 我是否相信恶意用户可以只用这些信息代表任何给定的用户生成一个令牌,而不用ADvalidation在我的API请求中使用该令牌? 令牌通常使用jwt.sign(payload, secretOrPrivateKey, options)生成jwt.sign(payload, secretOrPrivateKey, options) 。 或者,假设恶意用户可以获得一个实际的令牌(在过期之前)。 对我来说,似乎不必知道用户的用户名和密码,现在安全性已经降低到必须知道用户名和JWT秘密。 这是一个有效的关注,我该怎么做才能防止这种情况? 到目前为止,我最大的希望是使用服务器端会话login后存储有关当前用户的信息,以便即使在访问后端端点时恶意生成并使用令牌,除非用户实际已经通过login路由,通过ADauthentication,并在会话中存储一些信息。 我还考虑过在每个 API端点中实际使用AD进行身份validation,但这需要在每个请求中发送AD用户名/密码,这又要求敏感信息必须存储在客户端的sessionstorage或localstorage中,最有可能是一个坏主意。 所以,问题: 1)将AD授权与JWT结合为不记名令牌是合理的,还是使用AD进行authenticationbuild立安全后端+前端的首选方式是什么? 2)如果JWT是一个好主意,那么使用JWT保护端点的最佳做法是什么? 使用服务器端会话是否合理? 有趣的是,我已经发现了很多关于如何最好地实现基于令牌的authentication的例子(一般来说,或者特别是用NodeJS),但是其中有许多似乎有这样或那样的缺陷。

如何使用PassportJS与HapiJS

我很难决定使用PassportJS和HapiJS的最佳方式。 有没有人做到这一点? 我不是在谈论Travelogue,因为我有点不喜欢它的工作方式。 也许我没有正确使用它。

node.js传递身份validation状态

如果用户已经在PHP中进行身份validation,将用户的身份validation状态传递给node.js的最佳方法是什么? 例如 – 有一个用php编写的应用程序需要使用node.js进行实时更新。 但是这些更新应该仅限于login用户。 什么是最好的办法呢? 有没有办法从node.js访问PHP会话数据?

如何在服务器端(Node.js)以编程方式validationFacebook用户的访问令牌?

我有一个Facebook用户的访问令牌,我想validation这个访问令牌是否有效,即是否知道Facebook,目前有效,等等… 到目前为止,我已经看了Facebook的各种API ,基本上,我需要的是用户function的组合,以获取用户的详细信息,但是对于由访问令牌(而不是他/她的ID)标识的用户, 。 我想我需要处理访问令牌API ,但是由于我对开发Facebook应用程序完全陌生,所以我不确定从哪里开始。 基本上,我无法想象这应该是一个相当艰巨的任务。 直觉上我会期望的东西,如: GET http://graph.facebook.com/me?accessToken=$INSERT_TOKEN_HERE 有这样的事情吗? 如果是这样,请你指点我正确的方向? 即使是关于search什么(例如,术语)的一些提示可能会有所帮助。 顺便说一下,这个请求shell是从服务器发送的,而不是从浏览器发送的。 我不知道这是否重要,但我正在使用Node.js。 此外,如果有一个现成的模块可以将REST调用抽象出来,这可能也是有帮助和有趣的。 有任何想法吗?

自定义redirect在护照

我正在尝试为我的第一个面向公众的节点应用程序设置一个基本的身份validation。 我有两个护照策略:1)Facebook和2)Twitter。 我不打算至less包括一个电子邮件/密码系统,直到我明白安全的含义。 我已经能够让他们以一种开箱即用的方式工作,并与Mongoose绑定,以创build新的用户。 我现在想要从事重复社交帐号用户的工作。 所以每当一个新用户通过Twitter身份validation进入,我想redirect到一个收集电子邮件的页面。 我保存作为会话variables返回的令牌和configuration文件对象,并将该表单作为隐藏字段提交时,将在该页面上重用它们。 但是我不明白如何使用Passport来实现这个方面。 这里是我到目前为止的代码,我正在试图对每个部分进行评论。 本质上我正在检查如果叽叽喳喳用户是一个老用户,如果没有我设置会话variables,我将在/ addemail页面上重用,初始化用户对象(以便序列化,反序列化function有某些行动(不知道我明白什么序列化/反序列化实际上)现在,如果用户是一个新的,会话variablesNewTwitterUser是真实的,我检查它在auth /callbackurlredirect用户到适当的页面,但这是行不通的。 //basic modules and setup var express = require('express') , passport = require('passport') , mongoose = require('mongoose') , http = require('http') , util = require('util') , TwitterStrategy = require('passport-twitter').Strategy , FacebookStrategy = require('passport-facebook').Strategy , path = require('path'); var app = express(); //Mongodb setup var […]

了解如何使用NodeJS创build一个简单的后端

我一直在尝试在nodejs中开发一个相当简单的服务器。 基本上,我要做的是一个简单的API,需要authentication(简单的用户名/密码风格)。 我不需要的是任何types的前端function(模板等)。 我的问题是,我似乎无法绕过express / node的方法。 具体来说,我的问题是: 我如何连接身份validation? 我是否将多个处理程序传递给需要身份validation的每个path,还是有更好的方法来执行此操作? Express中间件(如app.use(express.bodyParser()) )如何工作? 他们是否改变request或response对象的内容? 具体来说,如果我使用身体分析器(内部强大?),我应该在哪里访问请求数据,这应该parsing? 当使用身份validation,并且我拥有存储在数据库中的凭证以及关于与个人客户相关的更多信息时,我可以在什么时候提取这些信息? 也就是说,当用户login时,我是否在login时获取用户logging并将其传递,还是在每个需要这些信息的处理程序中获取? 最后,你知道我可以看看一个开源的应用程序吗? 我希望看到一些简单的身份validation,甚至可能使用强大的,因为上传文件是我的要求之一。 正如我前面提到的,我相信我的问题最终是节点中function导向方法的一个难题(另外,我在web服务编程方面的经验相当有限)。 如果你知道一个资源,我可以阅读如何构buildnodejs应用程序的方法,请不要犹豫,指向我。

req.session.passport和req.user空白,req.isAuthenticated在初次成功login后使用passport-facebook返回false

在Facebook上初次成功login并使用passport-facebook 1.0.3和express 4.6.1进行loginredirectcallback之后,req.session.passport和req.user包含serialize调用期间设置的值(我从stragegy获得),但在后续访问站点上的不同路由时,req.session.passport和req.user为空,req.isAuthenticated()返回false,因此在从FB初始成功login后,所有其他路由上的ensureAuthentication方法失败。 我没有使用集群设置,所以我相信内存存储就足够处理这个,快速configuration看起来很好(我的意思是顺序),这里是我的快速configuration configExpressApp.set('views', './views'); configExpressApp.set('view engine', 'jade'); configExpressApp.use(morgan('dev')); configExpressApp.use(cookieParser()); configExpressApp.use(bodyParser.urlencoded({ extended: true, })); configExpressApp.use(bodyParser.json()); configExpressApp.use(expressSession({ secret:'MyExpressSecret', saveUninitialized: true, resave: true })); configExpressApp.use(passport.initialize()); configExpressApp.use(passport.session()); configExpressApp.use(methodOverride()); configExpressApp.use(express.static('./public')); 这是req.session对象初始的成功login和redirect,req.user包含与req.session.passport.user相同的数据 { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true }, passport: { user: { _id: 53ce23e3121421f229a438f8, info: false, loginType: 'fb', fbId: 'MyId', name: 'Karthic Rao', […]