Articles of 本地存储

连接Cookie的主屏幕HTML5应用程序?

因此,由于某种原因,将iOS5的HTML5应用程序添加到主屏幕上,就失去了使用Cookie的能力。 我正在使用运行连接的node.js服务器。 我见过其他人用http://rubygems.org/gems/rack_iphone_web_app解决这个问题 有没有什么这样做的连接cookie? 如果不是它将它看起来像翻译成localStorage本身? 非常感谢!

将令牌存储在浏览器中

问题=] 根据我的研究,在本地存储中存储networking令牌似乎是使用cookie来防止CSRF攻击的首选方法(我知道本地存储容易受到XSS攻击,尽pipe这些容易防止比CSRF容易)。 这就是说,我一直无法find任何关于利用本地存储这一手段的相关指南… 我正在寻找一些帮助,了解如何工作… 将服务器签名的令牌传递给浏览器本地存储的首选方法/工作stream程是什么? 一旦浏览器存储了令牌,我该如何使用那个存储的令牌。 我是否需要通过JS停止默认提交表单之类的东西,然后用每个请求的authorization: Bearer <token>头来发送AJAX请求? 当用户点击指向该用户拥有的资源的链接时,如何将该令牌发送给服务器以授予对受保护资源的访问权限? 工具 前端 HTML5(从手柄编译) JS CSS(由SASS编译) 后端 nodeJS(使用Express) 注意:我希望将来可以通过代码示例来编辑这篇文章(一旦我得到了它的大声笑),来帮助像我这样的其他困惑的人

基于令牌的身份validation和浏览器上的会话/本地存储

好吧,我想实现一个networking应用程序,使用身份validation机制来个性化网站上的用户体验,但同时我有一些问题,我想清除。 因此,一开始,用户将以他们的用户名和密码login(现在让我们忘记第三方authentication,并假设有一个适当的注册页面),并成功login后,服务器将生成一个令牌,用于从该特定用户的浏览器。 接下来,我正试图validation我的理解并提出相关的问题。 据我所知,在服务器端使用令牌的速度要快得多(如果你愿意的话,cpu密集程度要低一些),因为现在不需要解密存储在服务器上的密码,并将其与使用请求(例如使用bcrypt ),但相反,检查要简单得多,归结为令牌是否过期。 作为额外的好处,用户名和密码的敏感信息不会重复传输。 检查点1.我们希望应用程序在用户自愿或不小心按下“刷新/重新加载”时强健,这样令牌在刷新后仍然可以使用(而不必再用凭证login)。 现在很清楚,要么我们必须使用cookie(即会话),要么在客户端使用会话存储或本地存储。 有另一种方法吗? 据我所知,答案是否定的(是的,本地存储有不同的select,如Web存储,Web SQL数据库,索引数据库和文件访问,但这是超出了问题)。 这是对还是错? 而且,在客户端处理令牌(存储/调用)最常用的做法是什么? 检查点2.令牌到期。 据我所知,这个想法是,每次使用有效的令牌时,该特定令牌的到期时间被更新(例如7或10天后)。 这对于定期访问该站点的用户仅需要login一次就具有很好的好处。 但是,不利之处似乎在于,对于相同的用户,令牌保持不变 – 可能永远不变(除非令牌过期)。 那么问题是,这是安全的吗? 这里的另一个想法是更新后端的令牌,在客户端发送更新的令牌,更新浏览器的本地存储器上的令牌,而对最终用户而言,所有内容都是透明的。 这是常见的做法吗? 我可以看到,现在在服务器端,需要对生成的令牌保持谨慎(请参阅下面的场景)。 是否有共同的做法来处理这个(如果需要处理的话)? (假设用户A有两台设备A1和A2,使用令牌TA1,从现在开始7天到期,用户B有设备B1使用令牌TB1,从现在起7天后到期,所有的令牌都存储在某种本地存储器中。六天后(即实际到期前一天),当用户A正在使用设备A1时,TA1更新为TA2,同样在当天,TB1更新为TA1,现在如果用户A使用设备A2,令牌(TA1),但在使用API​​时将以用户B身份进行身份validation!) 检查点3.我一直认为基于令牌的authentication就是这样。 通过http请求的头部发送一个令牌,这就是全部。 显然,如果你也发送用户名,那么我们就避免发送密码,而且我们也避免了上述的问题。 不过,这种方法我不太喜欢。 毕竟,现在令牌作为一个密码。 唯一的节省是在服务器端匹配证书时的解密(即cpu-cycles)。 这种方法是废话还是什么? 检查点4.如果将来想创build智能手机或平板电脑的专用应用程序,则在请求的标题上使用标记(应该是非常容易),而不是依赖于Cookie和会话(请参阅cookie容器) 。 目前这对我来说很小,但这是真的吗? 我认为上面的问题是实现不可知的,但是如果你想给开发指针,我将使用node.js。

Angular 2authentication状态

我已经使用Angular 2实现了一个login页面。login后,我从服务器获取了jsonwebtoken,userId,userRole,userName。 我将这些信息存储在localstorage中,以便我可以随时访问它,并在用户刷新页面时保持login状态。 AuthService.ts import {Injectable} from "@angular/core"; @Injectable() export class AuthService { redirectUrl: string; logout() { localStorage.clear(); } isLoggedIn() { return localStorage.getItem('token') !== null; } isAdmin() { return localStorage.getItem('role') === 'admin'; } isUser() { return localStorage.getItem('role') === 'user'; } } 要检查login状态,我只是检查是否存在本地存储令牌。 由于localstorage是可编辑的,因此在localstorage中添加任何标记都会绕过login页面。 同样,如果客户端在本地存储中编辑用户angular色,则客户端可以轻松访问pipe理员或用户页面。 我如何解决这些问题? 这更像是一个普遍的问题,我想知道网站如何保持login状态? PS NodeJS服务器端login代码来生成jsonwebtoken const jwt = require('jsonwebtoken'); const User = […]

注册帮助函数Node.JS + Express

我试图学习NodeJS和Express。 我使用node-localstorage包来访问本地存储。 这在直接在函数中使用代码时可以工作 路线/ social.js exports.index = function(req, res) { if (typeof localStorage === "undefined" || localStorage === null) { var LocalStorage = require('node-localstorage').LocalStorage; localStorage = new LocalStorage('./scratch'); } localStorage.setItem('myFirstKey', 'myFirstValue'); console.log(localStorage.getItem('myFirstKey')); res.render('social/index', {title: "Start"}); } 但是在访问本地存储时,我不想一次又一次地写这些代码。 我希望能够注册一个我可以访问的帮助函数 var localStorage = helpers.getLocalStorage 或类似的东西。 我如何在NodeJS中做到这一点? 我见过有关app.locals的东西? 但是,我怎样才能访问我的路线中的应用程序对象?

保存并从本地存储获取快速js令牌

即时通讯使用与Express.js的节点,并尝试使用JWT进行身份validation,用户login后生成一个令牌,并将其保存到本地存储,但我不知道如何获取身份validation的令牌。 这是即时通讯使用的代码: login视图: $.ajax({ type: 'POST', url: base_url + "login", data: postData, dataType: 'json', success: function(data){ // console.log(data1); // alert(data); _(data); if(data.success === false){ showError(data.msg); }else{ showError(data.msg); window.localStorage.setItem("authToken", data.token); var token = window.localStorage.getItem('authToken'); if (token) { $.ajaxSetup({ headers: { 'x-access-token': token } }); } } } }); 这是在访问任何路由之前使用检查的路由validation: router.use(function(req, res, next){ var token = req.headers['x-access-token']; […]

我可以使用html5本地存储来存储用户authentication会话信息

快速背景: 我正在写Mongo / Express / Angular / Node SPA并使用护照我已经设置了OAuthlogin选项来处理用户authentication/授权。 随着护照,我成功地维护服务器上的会话,所以我所有的XHR请求(需要它)正在检查login的用户。 在login时,服务器将基本的用户会话信息放入一个cookie中,以便客户端在授权callback中find,然后我使用angular-cookies的$ CookieStore访问客户端上的cookie,将其保存到rootcope并清除cookie 。 问题: 除了用户刷新浏览器的任何事件之外,这一切都是完美的,这会导致我的rootcope会话显然被清除。 所以我正在考虑在浏览器本地存储(使用store.js)中存储会话信息,然后即使在初始加载时,我也可以检查浏览器本地存储中存在的会话,并在已经有会话的情况下绕过OAuthlogin。 在用户会话信息存储在浏览器本地存储中是不是很糟糕的做法,或者是否存在一些后勤/安全问题? 这个应用程序没有任何感性的数据,注册是免费的,login是真的只有在那里,所以我可以跟踪用户和存储在应用程序中为每个用户创build的数据。 而用户会话永远不会有密码(我只允许OAuthlogin没有本地选项)。

如何访问node.js中的localStorage?

我试图在网上search一个可以访问客户端的localStorage的节点模块,但无法find任何东西。 任何人都知道吗?