Tag: cookies

Loopbackjs社交用Facebooklogin

我有一个简单的Web服务,我想用Facebook和谷歌使用Loopbackjs添加社交login。 我已经完成了这个编辑的一部分,在这个链接中find了这个例子: https : //github.com/strongloop/loopback-example-passport,并按照这个指令: https : //docs.strongloop.com/display / public / LB /第三方+login+使用+护照 。 我现在的问题是,我需要在login后检索用户信息,以便用户模型中的每个后续编辑请求都可以直接指向拥有的用户实体。 例如用户X想要访问我的应用程序: X请求“example_site_address / auth / facebook”; X会redirect到“www.facebook.com/dialog/oauth?response_type=code&redirect_uri=example_site_address/auth/facebook/callback&scope=email&client_id=XXXXXXX”; 在他接受之后,他将redirect到“example_site_address / auth / facebook / callback&scope = email&client_id = XXXXXXX”; 然后他将再次redirect到“example_site_address / success_fb”,这个链接应该给客户端他login的用户实体。 使用谷歌这个问题解决了,因为我可以从cookie中检索AccessToken信息,find拥有这些信息的用户,然后将其发送回客户端,这样他就可以存储UserId,并且每个以下请求都可以像这个用户一样。 使用Facebook我无法做到这一点,因为cookie涉及loginencryption。 我真的是这种应用程序的初学者,所以我的策略是错误的。 你能帮我做这个吗?

在Node.js中获取请求头获取PHP会话ID

我有一个完全用PHP开发的应用程序,现在我想在我的应用程序中集成RTN(实时通知系统)。 目前我已经完成连接到Node.js PHP页面呈现与此代码 服务器: var app = http.createServer(function(request,response) { response.writeHead(200,{"Content-Type":"text/plain"}); response.end(); }).listen(3000); var io = require('socket.io').listen(3000); 客户 <script src="http://localhost:3000/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost:3000'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> 但现在越来越疑惑,我怎么能得到客户端请求的请求头? 其实我想要得到客户端Cookie使用PHP开发和节点RTN系统。 现在,因为我不知道如何得到请求标头无法获取cookie以及:( 更新我正在使用Memcache存储会话,这是我想获取cookie的主要原因,这样我就可以获取PHP的会话信息

如何在angularjs中访问由passportjs设置的cookie

我真的希望这不是一个愚蠢的问题,但我怀疑是这样。 我search了一切可以理解的事情,但是我仍然不明白如何阅读使用nodejs / express / passport设置的cookie。 我使用Angular的ngCookies和$ cookies服务,但是当我尝试打印出我在服务器端设置的cookie时,我看到了这个(使用console.log($ cookies [“connect.sess”])) s:j:{"passport":{"user":{"id":1,"email":"xxxxxx@yyyy.com","role":"Admin"}}}.0lKpQzpgzCAjgkIayDkUiOLhktIYsohr61U/4xSwWFA 我的cookie在那里。 但是,它们都是作为一个string存储的。 我应该看一个不同的对象吗? 它不会让我访问 – > $cookies["connect.sess"].passport 因为这是不明确的,因为$ cookies [“connect.sess”]返回一个string。 任何提示,我要去哪里错了? 我需要做的就是访问服务器中设置的这些cookie。 我不需要改变它们。 我希望在这方面额外的眼睛会做的伎俩。 我很难过 我尝试通过使用res.cookie设置我自己的cookie。 在我创buildcookie的服务器端,它看起来很好。 但是在那里和angular度之间,它看起来像“j:{我的json曲奇}”这次没有:前面,没有结束的gobble-de-gook。 当然,我可以parsing这些东西,并find我的JSON,但这东西得到补充,为什么? 我做了一些戳动作和快速response.cookie添加j:如果你传递一个对象json的前面。 和s:与json对象之后的blurb是他们签名cookie的方式。 所以我发现我真的不需要护照发送的会话cookie。 我可以使用会话cookie中的userid在服务器端进行身份validation,并使用以下命令创build自己的电子邮件和angular色cookie: res.cookie("email", user.email, {my cookie options}) res.cookie("role", user.role, {my cookie options}) 而不是尝试用json对象填充会话cookie。 我在下面select的答案是我所知道的最好的select。 虽然我觉得很难相信你必须从字符上去掉字符才能正确地获取客户端的cookies。 似乎很奇怪。 我是一个cookie新手,所以如果任何人有一个解释或阅读的好链接,我很乐意听到它。

为什么考虑没有自己的插件来支持cookies?

我喜欢restify ,它有很多粉丝,但是为什么它没有自己的插件来支持cookies? 也许我不知道什么,使用REST架构时不需要使用cookies? 也许为了这个目的使用不同的方法? 是否有可能已经有一个stream行的模块Node.js,可以轻松地整合restify?

重新启动浏览器后,ngCookies不会保存cookie

var app = angular.module('MyApp', ['ngCookies']); app.controller('MyController', function ($scope, $window, $cookies) { $scope.WriteCookie = function () { $cookies.put("Name", $scope.Name); }; $scope.ReadCookie = function () { $window.alert($cookies.get('Name')); }; $scope.RemoveCookie = function () { $cookies.remove('Name'); }; }); <html> <head> <title></title> </head> <body> <div ng-app="MyApp" ng-controller="MyController"> Name: <input type="text" ng-model="Name" /> <br /> <br /> <input type="button" value="Write Cookie" […]

表示cookieParser()困惑

这就是问题,到处search,从来没有find明确的答案。 为了这个: app.use(express.cookieParser('Secret')); <– "Secret" to actually be secret 我们究竟做了什么? 我有点困惑。 我应该使用这样的东西来保护它: https://github.com/jed/keygrip 希望问题是清楚的。 提前致谢!

如何使用Express在端口/域之间共享cookie

我有两个node.js(express)应用程序运行在两个不同的端口上。 一个在localhost:3000上运行,另一个在localhost:4000运行。 端口3000上的应用程序具有以下cookieconfiguration: app.use(express.cookieParser()) app.use(express.session({ key: settings.session.key, secret: settings.session.secret, cookie: settings.session.cookie, fingerprint: function () { return '' }, store: new MemoryStore() })) 另一个应用程序(端口4000 )有: app.use(express.cookieParser()) app.use(express.session({ key: settings.session.key, secret: settings.session.secret, cookie: settings.session.cookie, fingerprint: function() { return '' }, store: new MongoSessionStore({ db: db }) })) 他们都使用相同的会话configuration对象(唯一不同的是一个正在存储在MongoDB中,而另一个是在内存中。 我设置了一个类似于localhost:3000的cookie: res.cookie('mycookie', 'bar', { domain: 'localhost:4000' }) 然后我POST(与jquery.ajax)到localhost:4000上的路由,而cookie mycookie不存在。 […]

Csurf无效的csrf令牌Express / nodejs

我有这种奇怪的行为,我只是第一次加载我的页面时,得到一个错误,基本上是'EBADCSRFTOKEN'我一直在试图弄清楚为什么只发生在页面加载,如果我刷新,并得到一个新的令牌一切工作正常。 同样的情况发生在我删除csurf的cookie,刷新刷新,我得到一个新的令牌,但第一次总是失败我不知道为什么期待的string和令牌不匹配。 代码片段(我正在使用MEANJS堆栈): app.use(busboy()); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json({limit: '50mb'})); app.enable('jsonp callback'); var cp = cookieParser; app.use(cp()); var mStore = new mongoStore({ db: db.connection.db, collection: config.sessionCollection }); app.use(session({ secret: config.sessionSecret, store: mStore, cookie: {httpOnly: false}, key:config.cookieKey, })); app.use(csrf()); //setting up a middleware var middlewareFiles = [ 'csrf-rule.server.js', 'secure-routes.server.js' ]; middlewareFiles.forEach(function(routeSecure){ require(path.resolve('./app/middleware/'+routeSecure))(app); }); app.use(function(err, req, res, […]

PassportJS和Express 4不正确保存Cookie /会话

我有一个使用Express 4与护照0.3.2的应用程序。 我build立了一个passport-local策略,当/session端点发送用户名和密码时,获取正确的用户信息。 但是,用户信息永远不能正确保存。 因为这样的req.user在所有监听器中都是未定义的,而req.isAuthenticated()总是返回false。 我已经看到其他职位,经常发现与中间件设置的顺序问题,但我已经命令他们以正确的方式,所以我不知道该从哪里去。 这是我的POST监听器/session : app.post("/session", passport.authenticate('local'), (req: any, res: any) => { // if we reach this point, we authenticated correctly res.sendStatus(201); } ); 这是我的LocalStrategy设置: passport.use(new LocalStrategy( (username, password, done) => { let users = userRepository.getAll(); let usernameFilter = users.filter(u => u.getUsername() === username); if (!usernameFilter || usernameFilter.length !== 1) { […]

为什么expressjs每个OPTIONS响应都发送Set-Cookie头?

我发现我的快递服务器发送了一个Set-Cookie头,以响应我的前端Angular.js项目所做的每个OPTIONS请求。 这个cookie在每个OPTIONS请求上都有一个新的值,但实际上从来没有被Chrome存储过。 当我使用passport.js来validation用户时,对POST请求的响应具有相同的头(同样是一个新的cookie),但是这次我可以看到它被存储,并随后在Cookie头中发送请求。 哪个expression模块正在做这个,为什么? 为什么Chrome不存储cookie? 这比任何东西都更好奇,因为它不会造成任何问题(当试图追踪一个问题时引起了很多混乱)。