Tag: 基本authentication

如何使用Node.JS请求HTTP摘要authentication?

我必须用Node.JS编写一些API文档的代码,但是最近几天我尝试了所有可以在networking上find的解决scheme(包括当然是Stack),而没有成功… 我的API使用HTTP摘要authentication,这就是问题,我能够连接,这是不是一个大问题,但每次我得到相同的回报: Got response : 401 HTTP Digest Authentication required for "api.example.com" 你可以在下面显示我的基本代码,而无需authentication! 因为我不知道我能做什么, var http = require('http') var options = { host: 'api.example.com', path: '/example/1.xml', }; var request = http.get(options, function(res){ var body = ""; res.on('data', function(data){ body += data; }) res.on('end', function(){ console.log('Got response : ' + res.statusCode); console.log(body); }) res.on('error', function(e){ console.log('Got […]

nodejs网站与活动目录permisssions

您可以使用单一loginWindows Active Directory身份validation为用户设置基于nodejs的网站吗? 我发现这是为了设置Windows Azure AD ,但是我正在讨论一个内联网站点,它将托pipe在Windows服务器上,并由Intranet上的AD用户访问。

将Node.JS代码片段转换为Javascript(Google Apps脚本)

我想将下面的Node.JS代码片段转换为JavaScript ,以便在Google Apps脚本中运行它: 来自:Node.JS function getMessageSignature(path, request, nonce) { var message = querystring.stringify(request); var secret = new Buffer(config.secret, 'base64'); var hash = new crypto.createHash('sha256'); var hmac = new crypto.createHmac('sha512', secret); var hash_digest = hash.update(nonce + message).digest('binary'); var hmac_digest = hmac.update(path + hash_digest, 'binary').digest('base64'); return hmac_digest; } 这是我到目前为止所尝试的代码(以及它的许多变体): 致:JavaScript / Google Apps脚本 function getMessageSignature(url, request, nonce) […]

使用express-jwt作为中间件来validationAzure AD颁发的令牌

我想知道是否可以使用express-jwt NPM包作为中间件来validation由Azure AD发布的JWT令牌。 我们有一个以express / node编写的web API,并希望应用中间件模式来保护我们的端点并填充用户原则。 似乎: server.use(jwt({ audience: '{UUID}', issuer: 'https://sts.windows.net/{UUID}', }).unless({path : ['/']})) 因为它需要一个客户端秘密,但是从AD(就像在隐式stream程中那样),令牌是通过用户交互来检索的,并且没有客户端秘密。

使用connect-auth持久login

我正在构build一个node.js并使用connect-auth进行用户/身份validation,而我想要做的是允许用户长时间login。 玩弄周围的源代码看起来像connect-auth取决于连接会话维护authentication状态,所以一旦会话cookie过期(默认4小时)用户注销。 一个select是fork连接authentication和重构不依赖于req.session,但这是不平凡的。 另一个select是将会话cookie的默认年龄更改为非常高,但我希望我的会话对象能够与会话一起死亡。 任何人有任何build议? 我忽略了现有的解决scheme吗? 谢谢!

简单的RESTauthentication策略?

我正在devise一个可以由多个客户端,networking,手机,第三方等使用的Web服务。我正在寻找REST作为一种可能的解决scheme,我正在考虑身份validation的情况。 我正在努力保持简单和高性能的事情。 为了logging,我正在使用Node.js. 我知道会议不build议可扩展性的原因。 通过https传递每个请求的用户名和密码有什么意见? 例如: HTTP://为MyService /用户/用户名列表授权=和密码=为mypass 这种方法是否有严重的缺点? 它是否会打开安全漏洞,跨站点脚本? 一般来说,Web服务是否有更好的解决scheme?

尝试为Google身份validation器插入二维码图片时出现400错误请求

我正在尝试使用Google Authenticator在我的网站上设置双因素身份validation。 我能够生成工作代码,但是当我将图像URL插入到页面中时,在Chrome检查器中出现以下错误: GET https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET 400 (Bad Request) 生成QR码的代码: try key = crypto.randomBytes(10).toString('hex') catch error console.log "error generating code: #{error}" encoded = base32.encode(key) label = encodeURIComponent "MyLabel" uri = "otpauth://totp/#{label}?secret=#{encoded}" url = "https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=#{uri}" 插入图像的客户端jQuery: img = $("<img>").attr("src", url) $("#qr_box").html("") $("#qr_box").append(img) 这会导致页面上的以下HTML: <img src="https://www.google.com/chart?chs=200×200&amp;chld=M|0&amp;cht=qr&amp;chl=otpauth://totp/MyLabel?secret=THESECRET"> 图像可以打开一个新的标签没有问题。 该图像只能在我的页面大约1/10时间成功显示; 其他时间铬给400.我在这里错过了明显的东西?

Google OAuth2:缺less必需的参数:grant_type

我已经尝试了一切,阅读每个StackOverflowpost在这个问题上,但我仍然无法得到它的工作。 有趣的是,通过DHC REST API客户端(Google Chrome应用程序)发送POST请求时,我能够获得200 OK响应。 var url = 'https://accounts.google.com/o/oauth2/token'; var params = querystring.stringify({ grant_type: 'authorization_code', code: req.body.code, client_id: req.body.clientId, client_secret: 'HIDDEN', redirect_uri: req.body.redirectUri }); params = querystring.unescape(params); // doesn't work with or without string escaping request.post(url + '?' + params, function(error, response, body) { console.log(body); });

当它不应该时,authentication返回“401(未授权)”

我第一次设置了身份validationfunction,并且在用户login后得到了一些意想不到的结果。一位同事给了我一个有效身份validation的应用程序来模拟我的应用程序,好像我所做的一切都是正确的。 我在前端使用AngularJS,SailsJS后端框架和PassportJS身份validation中间件。 我的源是(现在)公开存储…后端API在Github这里( API Github )和前端代码在这里( 前端Github ) 基本上发生的是用户 点击loginbutton,触发这个function login: function (credentials) { return baseAuth.customPOST(credentials, 'login').then(function (user) { $log.debug('User logged in: ', user); isAuthenticated = true; return user; }); }, 该customPOST的控制器逻辑是这样的 login: function (req, res, next) { passport.authenticate('local', function (err, user, info) { if (err) { return res.json(err); } else if (user) { req.logIn(user, […]

如何处理asynchronous。 findOrCreate护照和mongoose的方法

身份validation模块“Passport”需要FindOrCreate方法才能进行login。 我正在使用mongoose为了保存我的用户以下模式: var UserSchema = new Schema({ firstname: String, lastname: String, email: String, accounts: [] }); accounts数组包含代表Facebook帐户的对象,如{provider: "facebook", uid: "someFacebookId"} 。 我的身份validation策略如下所示: // Authentication Strategy passport.use(new FacebookStrategy({ clientID: CONFIG.fb.appId, clientSecret: CONFIG.fb.appSecret, callbackURL: CONFIG.fb.callbackURL }, function(accessToken, refreshToken, profile, done) { // asynchronous verification, for effect… process.nextTick(function () { User.find({ 'accounts.uid': profile.id, 'accounts.provider': 'facebook' }, function(err, olduser) […]