问题: 只使用本地身份validation策略为客户端应用程序提供安全的API。 红色箭头是知识差距的一部分。 语境: 即— client.example.com正在向api.example.com/login一个POST ,成功的client.example.com可以访问api.example.com/secret等GET服务。 一个主意! 在API前面实现混合授权types的OAuth 2.0的实现。 为什么要混合 它不会是一个Implicit Grant Flow即Client-Side Web Applications Flow因为没有redirect到API服务器也授予访问令牌。 (即) “访问您的数据是否可以?” 它不会是Resource Owner Password Flow因为客户端ID和客户端密钥与请求一起传递,所以假定客户端应用程序是服务器端。 好的…那么两者有什么关系呢? 如果我们在客户端应用程序的页面加载中使用CRSF令牌,并将其与用户凭证一起POST,OAuth 2.0身份validation端点将交换访问令牌? 您将在成功login后使用访问令牌和CRSF令牌对每个后续请求进行身份validation。 一个好的Node.js OAuth 2.0库我发现: https://github.com/ammmir/node-oauth2-provider 帮我! 我无法find解决此问题的validation措施的工作示例! 把我指向正确的方向? 最终,这里的目标是使用CORS和本地策略(即用户名和密码)来validation客户端应用程序到REST API,即使上述约定是不可能的。 容纳赏金: 这是一个客户端应用程序,所以让我们保持时尚。 我正在寻找一个使用上面的API / Auth服务器的Node.js OAuth 2.0种子和前端框架(如Angular.js或Backbone.js)进行请求的工作示例。 这个例子应该与上面描述的上下文匹配。
我想升级我现有的Rails和Angular 1.x应用程序。 我正在按照ng升级文档 ,看到有很多依赖包括systemjs , 打字稿 , tsd和一些其他的JavaScript库。 理想情况下,将有一个angular度2的gem,将有所有的依赖,但我无法find。 接下来,我查找每个依赖关系的gem,但没有一个tsd。 切换到自定义构build策略是否有意义,这样我可以使用npm进行JavaScript包pipe理? 我读这篇文章,build议大家,但我喜欢资产pipe道的便利。 任何人都可以指向成功使用rails项目ng-upgrade的例子吗? 它是否使用像gulp一样的定制构build解决scheme还是使用资产pipe道?
我们喜欢RequireJS和AMD在开发过程中,我们可以编辑一个模块,在我们的浏览器中重新加载,并立即看到结果。 但是,当我们将模块连接成一个单独的文件进行生产部署时,显然必须有一个AMD加载器,无论该加载器是RequireJS本身,还是小型合作伙伴“杏仁”,如下所述: http://requirejs.org/docs/faq-optimization.html#wrap 我的困惑是:为什么装载机是必要的? 除非你有非常不寻常的情况,使得你require()在你的模块中进行require()调用,否则看起来一系列的AMD模块可以在没有加载器的情况下连接在一起。 最简单的例子可能是像下面这样的一对模块。 ModA.js: define([], function() { return {a: 1}; }); ModB.js: define(['ModA'], function(A) { return {b : 2}; }); 考虑到这两个模块,似乎一个连接器可以简单地生成以下文本,并且不会给生产服务器或浏览器带来RequireJS或Almond所需的额外带宽或计算负担。 我想象一个产生(我使用V形引号«,»来显示上面两个模块的代码片段已被插入的连接符): (function() { var ModA = «function() { return {a: 1}; }»(); var ModB = «function(A) { return {b : 2}; }»(ModA); return ModB; })(); 就我所知,这将正确地重现AMD的语义,并至less有一些额外的粘连JavaScript。 有没有这样的连接器? 如果不是的话,我是否会觉得自己应该写一个傻瓜 – 是否真的有很less的代码库,它们是用define()编写的简单和干净的模块组成的,而且不需要进一步的require()调用,代码提取?
在PHP 3.0 SDK中,没有getSession()或者Facebook API以外的任何会话处理。 根据这个博客条目和这个错误报告 ,几天前Facebook的开发者也不知何故更新了JavaScript sdk。 在过去的几天里,一个更改被引入到托pipe的JS SDK中,打破了它与当前PHP SDK(2.x和3.x)之间的所有兼容性。 在他们的网站上使用JS和PHP SDK的开发人员可能会看到服务器端API失败。 但是,我不知道这是否真的影响我的问题。 就像在这个问题的答案一样,我正在使用PHP检索OAuth对话框的访问令牌,并将新访问令牌保存在会话中。 目前的解决方法 以下代码显示了我如何处理这个会话。 $_REQUEST['session']是OAuth对话框的响应内容。 if(isset($_REQUEST['session'])) { $response = json_decode(stripslashes($_REQUEST['session']), true); if(isset($response['access_token'])) { $this->api->setAccessToken($response['access_token']); $_SESSION['access_token'] = $this->api->getAccessToken(); } } elseif(isset($_SESSION['access_token']) && ! isset($_REQUEST['signed_request'])) $this->api->setAccessToken($_SESSION['access_token']); elseif(isset($_REQUEST['signed_request'])) { Session::invalidate('fbuser'); $_SESSION['access_token'] = ''; } 以下是我如何处理用户数据: try { $this->user = Session::getVar('fbuser'); if ($this->user === false || is_null($this->user)) […]
我开发了一个单一页面的应用程序原型,在前端使用Backbone,并从服务器上的精简RESTful API消耗数据。 来自沉重的服务器端应用程序开发(PHP和Python),我真的很喜欢用厚的客户端MVC新的不同的devise方法,但很困惑如何最好的限制应用程序login身份validation的用户。 我更喜欢将应用程序本身放在login后面,并且还希望除了站点的本地login之外,还最终实现其他types的login(openid,fb connect等)。 我不清楚这是怎么做的,一直在寻找 – 但是找不到信息让我很清楚。 总的来说,当前注册用户的最佳做法是什么,并要求他们login才能使用您的单页面应用程序? 一旦用户login,api请求如何validation? 我可以存储一个会话,但是如何在API调用中检测此会话,还是在每个API调用中都必须传递一个令牌? 任何答案,将不胜感激!
在被拒绝一次之后,我们如何使用getUserMedia()来请求摄像头/麦克风访问? 我正在使用getUserMedia访问用户的相机并将数据传输到canvas。 这一切工作正常。 在testing中,我曾遭到否认。 在Chrome和Firefox的这一点上,任何随后的getUserMedia()请求都会默认为拒绝状态。 我们显然不希望在被拒绝之后在每个页面加载请求摄像头/麦克风的权限,从而使我们的用户感到懊恼。 这已经足够地理定位api烦人了。 但是,必须有一种方法来再次请求它。 仅仅因为用户遭到拒绝,并不意味着他们想要一直拒绝摄像头访问。 我一直在阅读规范和search一下,但我没有find任何明确的问题。 编辑:进一步的研究,似乎在Chrome浏览器中击中拒绝将当前网站添加到阻止列表。 这可以通过chrome:// settings / content手动访问。 滚动到媒体。 pipe理例外情况,删除阻止的网站。 链接到Chrome://设置/内容不起作用(如果我们想添加一个有用的链接让人们重新启用权限)。 整个用于处理getUserMedia的权限的用户体验很糟糕。 =(
如何在Firefox中打印PDF? 此function适用于Chrome,但不适用于Firefox function print_pdf(url){ var id = 'iframe', html = '<iframe id="'+id+'" src="'+url+'" style="display:none"></iframe>'; $('#main').append(html); $('#'+id).load(function(){ document.getElementById(id).contentWindow.print(); } } 错误 Error: Permission denied to access property "print"
我知道他们正在使用jQuery插件,但我似乎无法find他们使用哪一个。 特别是,我正在寻找的自动完成function与SO的自动完成function完全相同,在那里它将执行一个AJAX命令,input每个新单词并允许您从下拉列表中select一个。
我在哪里可以得到JSHint默认选项的完整列表。 我尝试在网上search,但找不到任何东西。 编辑:我的意思是所有选项的默认值的列表,以防万一它不清楚:)
HTML和JavaScript编程的最佳参考网站: W3C WebEd Wiki (这个网站有一个自学教程以及参考资料): HTML , CSS W3C规范: HTML4 , HTML5 (工作草案), CSS 2.1 , DOM Tech Reports:等级1-3 ECMAScript: ECMAScript 5.1 (PDF), ECMAScript 3rd Ed。 , 注释ES 5.1 , HTML ES 3 SitePoint: DOM JavaScript , HTML , CSS – search Mozilla开发中心: DOM , JavaScript , JS Lang , AJAX , HTML , XHTML […]