背景
现代浏览器中的HTML5 Web存储功能可通过以下Javascript命令访问:
sessionStorage.setItem("username", "John");
localStorage.setItem("username", "John")
Run Code Online (Sandbox Code Playgroud)
我可以使用的网站表明浏览器支持率接近90%.但是,在"已知问题"选项卡中,我可以使用说:
在隐私浏览模式下,Safari,iOS Safari和Android浏览器不支持设置localStorage.
我的问题
在隐私浏览模式下,Safari,iOS Safari和Android浏览器是否仍支持sessionStorage?
我想在浏览器标签之间共享我的身份验证令牌,建议使用HTML5localStorage.但是,当浏览器关闭时,我不希望任何与身份验证相关的内容留在我的存储中,建议使用HTML5sessionStorage.
这意味着您无法在选项卡之间共享,为此您应该使用localStorage
因此,建议不要将任何敏感信息存储在本地存储中
如何在选项卡之间组合我的身份验证令牌,并确保在浏览器关闭时没有任何内容留在存储中?
其他网站如何解决这个看似简单的问题.
authentication html5 authorization session-storage local-storage
我有一个带登录屏幕的应用程序,在用户通过身份验证后,从数据库中检索到一些"数据"(用户名和权限),直到此处一切正常.
在登录过程之后,我需要访问权限以在不同的JavaFX场景中生成一些菜单,这在整个应用程序中随时都可以,但我不知道该怎么做.
我正在寻找的是一种行为,例如PHP中的SESSION变量(是的,我来自Web开发),它在一段时间内保持信息的存活和可访问性(通常在用户登录时).
我发现的关于这个主题的信息不清楚和过时,我的意思是,解决方案不适用于JavaFX 2或具有旧设计模式的解决方案.
我已经创建了一个图像,因为在其他论坛中我发现了同样的问题,但这被误解了,所以我希望这可能有所帮助.
谢谢大家.
我曾经使用过Java EE(现在是雅加达EE),因为它之前被称为"EE"(即servlet等),但我最后一次深入会话管理是在15年前.现在我们有了新的技术和趋势,例如HTML5 Web Storage API和JSON Web Token(JWT).虽然人们可以讨论JWT对会话跟踪的好处,但是使用sessionStorage.在单个选项卡中跟踪会话有一些有趣的好处.
所以只是为了让我加快速度:
sessionStorage而不是cookie)?我见过的所有讨论似乎围绕这个问题跳舞.如果有人可以指导我一些现有的文档,如果有的话,那也会有帮助.谢谢.
session session-storage session-management java-ee session-cookies
好的,所以我有这个JSON:
{"Status":"OK!","ListaPermessi":
[{"IdPermesso":10,"Nome":"WIND_PARAMS"},
{"IdPermesso":11,"Nome":"ADMIN_SERVER"},
{"IdPermesso":21,"Nome":"REC"},
{"IdPermesso":22,"Nome":"REC_DIST"},
{"IdPermesso":23,"Nome":"REC_DIST_CR"}
]}
Run Code Online (Sandbox Code Playgroud)
我的代码是:
var parsedResult = JSON.parse(result); // where result is the above JSON
if (parsedResult.Status === "OK!") {
// Set sessionStorage vars
if (typeof(Storage) !== "undefined") {
// localStorage & sessionStorage support!
sessionStorage.setItem("ListaPermessi", parsedResult.ListaPermessi);
}
else {
// Sorry! No web storage support :(
}
}
Run Code Online (Sandbox Code Playgroud)
但是......这不能正常工作!在分配之后,从Firebug看到的sessionStorage看起来像这样:
sessionStorage:
从javascript 将一个对象数组分配给sessionStorage变量的正确方法是什么?
我正在寻找替代cookie的方法,我在这里读到了关于HTML5网络存储的内容,我在这里阅读了一个更简单的解释,但我仍然没有完全了解它是如何工作的.有人可以提供一些稍微非技术性的解释,以便我可以理解技术方面的内容.它说关于浏览器必须存储键值对,但存储的位置和方式以及为什么其他站点无法访问?为什么它不被视为另一种形式的cookie?
我正在寻找一种全面而完整的cookie替代品; 如果我的组织想要将其所有网站替换为使用cookie来代替网络存储,那么我们可以轻松地对该要求说"是"吗?我们假设只使用了最新的浏览器.
与Cookie相比,网络存储如何以及以何种方式增强安全性?它是否有可能以其他方式危及安全性?有没有任何真实生活经历可以分享利弊的人?
我将在我的页面上有几个iframe,我将非常密集地使用其中的sessionStorage.我很好奇的是,如果我将为所有iframe分别存储或共享存储空间?尺寸限制如何适用?
我想将用户相关的属性存储在 sessionStorage 中,并将其他属性存储在 localStorage 中。我能够使用以下配置的 persist 将所有属性存储在 localStorage 中
import reducers from './reducer';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';
const persistConfig = {
key: 'root',
storage: storage,
stateReconciler: autoMergeLevel2 // see "Merge Process" section for details.
};
const pReducer = persistReducer(persistConfig, reducers);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何在 persist 中配置 sessionStorage 和 localStorage 吗?
大约一年半前,我使用 OfficeJS API 编写了一个 Excel 加载项,它一直工作到大约两周前。Excel 似乎已经进行了更新,现在我可以右键单击任务窗格并查看开发工具,而以前我无法做到这一点,并且必须运行外部 MS Edge 开发工具应用程序进行调试。这似乎是一个相对较新的问题,我似乎找不到任何有关它的信息。我尝试将 MS Edge 的跟踪预防设置减少为基本设置,如下所示:
我向 appsforoffice.microsoft.com 授予了 javascript 权限,因为 devtools 说它正在阻止此文件,特别是控制台中的https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 。我还只包含了 microsoft.com 以及该公司的 URL 和 cdn url。我还添加了 localhost,因为这也在我的计算机本地发生。我似乎无法专门更改 Excel 中的任何阻止设置,但我的假设是 Excel 为加载项运行 Edge 实例,因为我可以在 Edge devtools 中跟踪它。
我阅读了此处找到的文章https://learn.microsoft.com/en-us/microsoft-edge/web-platform/tracking-prevention,以了解我可以更改什么,但这里的解决方案都不适合我。看起来 Edge 的设置几乎没有被读入 Excel,因此它总是阻止任何尝试从 localStorage/sessionStorage 读取数据的应用程序。
我在加载项中使用 sessionStorage 来写入数据以进行读回,并尝试了 localStorage,但我仍然遇到相同的错误。
更奇怪的是,我试图读出的数据来自我写入存储的数据,当我查看 devtools 中的存储选项卡时可以看到它的写入没有问题,因此问题仅限于读取存储。
有谁知道如果这些更改没有从 MS Edge 更新或者最近与 Excel 一起发布了一个新错误,则需要在哪里对跟踪进行更改才能使 Excel 加载项能够从存储中读取数据?
编辑:为了更清楚地了解确切的问题,我的添加基本上从单元格中读取文本和值,并根据我为用户定义的标签,这些值将在包含用户想要的标签的 HTML 元素中输出产生。例如,当用户想要一个段落时,他们可以使用 /para 和 /end para 标记单元格,并且其间的行/单元格中的任何文本和值都将在 HTML 段落标记中输出。他们还可以构建这样的 HTML 表格。在读取文本和值的过程中,这一切都会构建成一个名为previewString我存储在 sessionStorage 中的字符串,以便可以打开一个对话框窗口并previewString从 …
我正在将 AWS Amplify / AWS Cognito 用于我的 Web 应用程序。它会自动将令牌放入浏览器的本地存储中。这是 SDK 的预期行为。它将令牌添加到本地存储中,以便用户可以在会话关闭然后重新启动后使用该应用程序,而无需再次登录。
但是,在我奇怪的用户场景中,我必须制作我的网络应用程序,以便当用户关闭浏览器并重新打开它时,用户必须再次登录。
因此,我不需要将令牌保存在 localStorage 中,而是需要将它们保存在 Web 浏览器的 sessionStorage 中。
怎样做才好看呢?
session-storage amazon-web-services local-storage jwt amazon-cognito
session-storage ×10
javascript ×4
html5 ×2
cookies ×1
excel-addins ×1
iframe ×1
java ×1
java-ee ×1
javafx-2 ×1
json ×1
jwt ×1
office-js ×1
react-redux ×1
reactjs ×1
redux ×1
session ×1
web-storage ×1