尝试使用Volley lib作为我的Android应用程序的网络包装器.我有一个连接并运行,但问题是每次响应中有多个"Set-Cookie"标头时,Volley使用不能有重复键的Map,并且只会存储最后一个Set-cookie标头并覆盖其余的.
这个问题有解决方法吗?
还有另一个lib可以使用吗?
我正在研究使用 WebHttpBinding 从 WCF 自托管控制台应用程序 REST 服务写入 cookie 的最快方法。我准备了“设置 Cookie”,但仅在浏览器中设置了第一个 Cookie(在 Windows 上使用 FireFox 11.0)以及“过期”值。
var expiry = DateTime.Now.AddMonths( 6 );
var outresp = WebOperationContext.Current.OutgoingResponse;
outresp.Headers.Add( HttpResponseHeader.SetCookie , "cookie1=fd9416ea-2705-4d44-be76-f2f7b95e6b13; cookie2=7d489e69-d9c9-4b8d-a4b1-bce0da1c5966;expires=" + expiry );
Run Code Online (Sandbox Code Playgroud)
我还尝试在第一个 cookie 和第二个 cookie 之间添加逗号,但这也不起作用:
outresp.Headers.Add( HttpResponseHeader.SetCookie , "cookie1=fd9416ea-2705-4d44-be76-f2f7b95e6b13;, cookie2=7d489e69-d9c9-4b8d-a4b1-bce0da1c5966;expires=" + expiry );
Run Code Online (Sandbox Code Playgroud)
我把它剪下来,然后启动 Fiddler:
outresp.Headers.Add( HttpResponseHeader.SetCookie , "foo=foovalue;,bar=barvalue;" );
Run Code Online (Sandbox Code Playgroud)
Fiddler 显示了这一点:
Response sent 27 bytes of Cookie data:
Set-Cookie: foo=foovalue;,bar=barvalue;
This response did not contain a P3P Header.
Validate P3P Policies at: http://www.w3.org/P3P/validator.html
Learn more at: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Passport.js 和 Express-Session 实现登录功能,它运行良好,
var passport = require('passport'),
session = require('express-session'),
MongoDBStore = require('connect-mongodb-session')(session);
var sessionStore = new MongoDBStore({
uri: config.db,
collection: 'sessions'
});
var sessionOptions = {
name: 'very-secure-cookie',
secret: config.secret,
resave: false,
saveUninitialized: true,
cookie: {
secure: true,
maxAge: null
},
store: sessionStore
};
app.use(session(sessionOptions));
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)
这里,maxAge是null,意味着客户端在关闭浏览器窗口时会注销。然而,我想用客户的电子邮件地址存储一个额外的 cookie,以便在<input type="text" name="email">他们稍后回来时想要重新登录时预先填写。
我尝试过app.use()使用另一个会话对象来将电子邮件信息存储在另一个 cookie 中,但由于某种原因,该 cookie 只设置一次(第一个)。
app.use(session(returningSessionOptions));
Run Code Online (Sandbox Code Playgroud)
在任何地方都找不到任何明智的解决方案:(
哦,我不得不提一下,我考虑过将cookie-parser中间件与 一起使用express-session,但文档指出这可能会导致冲突。
cookies ×2
adt ×1
android ×1
http-headers ×1
node.js ×1
passport.js ×1
rest ×1
session ×1
setcookie ×1
wcf ×1