Tag: 基本authentication

安全,以防止与节点服务器的游戏中的黑客

我正在做一个浏览器纸牌游戏。 每个玩家都有一大堆可用卡购买的卡。 我需要确保一个玩家不能破解他在浏览器中使用的牌,所以服务器必须authentication他拥有他使用的每张牌,而且它确实是同一张牌。 为了使应用程序更快,我想将卡片数据存储在外部JSON文件中,只说“player x拥有卡片y和z”,并从JSON获取这些卡片上的信息。 有什么安全模式可以帮助我吗?

node.js:在获取请求成功validation后,提供文件(特别是apk)

好的,我试图在成功validationget请求时使用node.js来提供apk文件。 为此,我使用了一个表单的api调用: GET /apk/?username=user&token=a_token_goes_here 请注意,实际的身份validation是通过在请求的头部发送凭据来执行的(例如,在那里出现用户名和密码)。 身份validation成功,而且当我确认用户的个性化令牌是正确的时候,我真的可以把文件送回客户端。 为了简单起见,处理程序代码的关键部分如下所示: Peer.find({"username": request.credentials.peer.username}).exec(function (dbError, results) { if (dbError) { // handle error } if (results[0]._id.toString() === request.query.token) { var absolutePath = THE_ACTUAL_PATH_TO_THE_APK_NOT_UNDER_PUBLIC; var stat = fs.statSync(absolutePath); response.writeHead(200, { 'Content-Type': 'application/vnd.android.package-archive', 'Content-Length': stat.size }); var readStream = fs.createReadStream(absolutePath); readStream.pipe(response); return callback (null); } else { // error handling … } […]

会话身份validationtypes错误:对象#属性“types”<ServerResponse>不是函数

我正在学习node.js,并且通过Brad Dayleys书中的一些示例来expression和工作。 我从本书中复制了下面的代码,它使用encryption和快速会话实现了一些基本的会话authentication: var express = require('express'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var crypto = require('crypto'); //encrypt password function function hashPW(pwd) { var hash = crypto.createHash('sha256').update(pwd).digest('base64'); return hash.toString(); } var app = express(); //this is the new way to call this module app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser('MAGICString')); […]

passport.use local-login acess to res

我很难将res var传递给passportauthentication的中间件模块。 遵循护照指南: http : //passportjs.org/guide/authenticate/它声明要传递res到authenticate方法来启用自定义redirect,您需要将passport.authenticate放到app.postcallback中。 由于我想保留所有的业务在我的护照文件,而不是在路由我想出了以下内容: 路线: // process the login form app.post('/login', function( req, res, next ){ console.log(1); passport.authenticate('local-login', { successRedirect : '/profile', failureRedirect : '/login', failureFlash : true }); }); 模块: …. // expose this function to our app using module.exports module.exports = function(passport) { …. passport.use('local-login', new LocalStrategy({ usernameField : 'email', […]

Android Facebooklogin和服务器端身份validation

我遇到了困难,围绕以下几点: 与Facebooklogin的Android应用程序 NodeJS(Hapi.js)服务器后端 在过去,我使用一个简单的用户名密码系统,使得创build服务器端会话和validation服务器请求(例如:获取距我50公里内的所有用户)非常容易。 我删除了该系统,并select在Android应用程序的Facebooklogin,因为这将有助于减less一些负载(例如:我们不需要存储我们自己的图像…)。 问题是,我不知道如何处理服务器端身份validation。 所有的GET,POST,…只能由使用Facebook集成loginAndroid应用程序的用户完成。 我在Stackoverflow上发现了以下主题: Facebook的身份validation到我的服务器使用Android 用我的服务器提供安全的Facebook身份validation 我只是想要一个更新的意见,是否足够安全的发送令牌到我的节点服务器,并使用它来检查一个有效的身份validation的Facebook API调用? 如果有更好的方法,请分享! 提前致谢。

快速请求后处理

我在express的文档里找不到任何东西,但是有请求后处理的东西吗? 我正在使用使用通行证的自定义令牌身份validationscheme,我希望能够在发出请求后自动更新响应头中的令牌,主要是用于身份validation目的的哈希时间戳。 为了便于讨论,让我们在每个请求之后执行以下函数: function requestPostProcess(req, res){ if (res.status == 200) { res.token = updateToken(); } } 理想情况下,我希望能够做到这一点,而不必在每个路线中调用next()。 这甚至可能吗?

如何密码保护Harp.js应用程序的子目录

如何密码保护Harp站点中的子目录(在节点下运行)? 我想要的东西像基本身份validation,但一个文件夹,而不是整个网站。

使用中间件使用ExpressJS调用身份validationAPI

我正在使用两个Node.js + Express应用程序: 后端 authentication 而我的前端是build立在AngularJS上的 基本上我试图发送一个JSON Web令牌与后端的每个请求,然后使用路由中间件来调用身份validationAPI。 它validation该令牌并将用户数据添加到请求。 最后,我使用用户数据在后端处理请求以获取我的资源。 var app = angular.module('myApp', [<dependencies> ]).config(function ($routeProvider, $locationProvider, $httpProvider) { $routeProvider .when('/', { templateUrl: 'views/login.html' }) .when('/foo', { templateUrl: 'views/foo.html' }) .otherwise({ templateUrl: '404.html' }); $locationProvider.html5Mode({ enabled: false, requireBase: false }); $httpProvider.interceptors.push(['$q', '$location', '$sessionStorage', function($q, $location, $sessionStorage) { return { 'request': function (config) { config.headers […]

同样的Google云端存储上传脚本可以在一台电脑上运行,但是不能运行,为什么?

我试图用Node.JS(使用gcloud软件包)将file upload到Google云端存储,并获得服务帐户凭据,并且出现“invalid_grant”错误(可能是授权错误)。 当我尝试从另一台电脑上做到这一点 – 它工作正常,错误只发生在我的电脑上。 var gcloud = require('gcloud')({ projectId: 'xxxxxxxxxxxxxx31032015', keyFilename: './keyfile.json' }); var storage = gcloud.storage(); var bucket = storage.bucket('test.testBucket.com'); bucket.upload('test.png', function (err, file) { console.log(err); });

使用本地策略进行身份validation时,Passportjs引发500服务器错误

我正尝试使用Facebook和本地策略进行多策略validation。 Facebook身份validation通常工作,我的数据库得到更新,但本地策略给我以下错误: TypeError: undefined is not a function at allFailed (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:111:15) at attempt (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:160:28) at Strategy.strategy.fail (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:277:9) at Strategy.authenticate (/Users/r/Desktop/jb/node_modules/passport-local/lib/strategy.js:75:17) at attempt (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:341:16) at authenticate (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:342:7) at Layer.handle [as handle_request] (/Users/r/Desktop/jb/node_modules/express/lib/router/layer.js:82:5) at next (/Users/r/Desktop/jb/node_modules/express/lib/router/route.js:110:13) at Route.dispatch (/Users/r/Desktop/jb/node_modules/express/lib/router/route.js:91:3) at Layer.handle [as handle_request] (/Users/r/Desktop/jb/node_modules/express/lib/router/layer.js:82:5) at /Users/r/Desktop/jb/node_modules/express/lib/router/index.js:267:22 at Function.proto.process_params (/Users/r/Desktop/jb/node_modules/express/lib/router/index.js:321:12) at next (/Users/r/Desktop/jb/node_modules/express/lib/router/index.js:261:10) at SessionStrategy.strategy.pass (/Users/r/Desktop/jb/node_modules/passport/lib/middleware/authenticate.js:318:9) at SessionStrategy.authenticate […]