使用OAuth 2.0访问谷歌的API 谷歌的API使用的OAuth 2.0协议进行身份验证和授权。谷歌支持常见的OAuth 2.0场景,如那些Web服务器,安装,和客户端应用程序。...访问 谷歌API控制台 获取的OAuth 2.0凭据如已知的谷歌和你的应用程序客户端ID和客户端密钥。设定值的变化基于你正在建设什么类型的应用程序。...方案 Web服务器应用程序 该谷歌的OAuth 2.0端点支持的Web服务器应用程序使用的语言和框架,如PHP,Java和Python和Ruby,和ASP.NET。...客户端(JavaScript)的应用 该谷歌的OAuth 2.0端点支持,在浏览器中运行的JavaScript应用程序。...用户启动浏览器,导航到指定的URL,在日志,并进入码。 同时,应用调查谷歌的网址在指定的时间间隔。用户批准的访问后,从谷歌服务器的响应中包含的访问令牌和刷新令牌。
used an access token **********) as part of a query parameter to access an endpoint through the GitHub API...: https://api.github.com/user Please use the Authorization HTTP header instead as using the `access_token...Depending on your API usage, we'll be sending you this email reminder on a monthly basis....Thanks, The GitHub Team 根据最新的github api 如果使用GitHub登录获取authenticatied 的API 已经更换,不能使用原来的url 而需要自定义的github...因此,python 获取User 的API应当更改为 headers = {"token":"token {}".format(access_token)} requests.get(url=userurl
本文主要讨论windows下基于tensorflow的keras 1、找到tensorflow的根目录 如果安装时使用anaconda且使用默认安装路径,则在 C:\ProgramData\Anaconda3...若并非使用默认安装路径,可参照根目录查看找到。 2、找到keras在tensorflow下的根目录 需要特别注意的是找到keras在tensorflow下的根目录而不是找到keras的根目录。...在后一种情况下,将使用优化器的默认参数。...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras中添加自己的优化器...(如adam等)就是小编分享给大家的全部内容了,希望能给大家一个参考。
使用 MediaStream Recording API 和 Web Audio API 在浏览器中处理音频 1....背景 最近项目上有个需求,需要实现:录音、回放录音、实现音频可视化效果、上传wav格式的录音等功能。于是乎,我就顺便调研了下如何在浏览器中处理音频,发现 HTML5 中有专门的API用来处理音频。...核心概念 2.1 MediaStream 一个MediaStream是一个媒体内容的流。一个流中可能包含几个轨道:比如若干视频轨道和若干音频轨道。...2.4 AudioContext 使用Web Audio API相关接口前,你必需创建一个AudioContext。一切操作都在这个环境里进行。...如何录音 首先,我们可以使用getUserMedia向浏览器申请权限: navigator.mediaDevices.getUserMedia({ audio: true }).then((stream
脚本模式,正式项目中使用的方式; 把要执行的所有语句编写的一个文本文件中,一次性提交给node解释器执行,在脚本模式下,声明的全局变量不是global的成员,避免了全局对象的污染。...Node.js中的特有概念-模块 Modal:模态框 Model:模型 Module:模块 一个Web项目功能可以分为很多不同的“模块”,如商品管理模块、用户管理模块、支付模块、促销模块、商家管理模块...Node.js中每个模块都是一个独立构造函数,解释器会为每个.js文件添加如下代码: 每个模块都可以使用自己的require()函数引入另一个模块,底层本质就是创建了指定模块的一个对象实例。...使用带中文的字符串按utf8的格式转为缓冲区(utf8中一个中文3字节); var buf4=new Buffer(“AB一二”,“utf8”); // <Buffer 41 42 d2 bb ef...该模块可用于编写基于HTTP协议的客户端程序(即浏览器);也可以编写基于HTTP协议的服务器端程序(即Web服务器) htttp常用的类: 1. http.ClientRequest 常用的两个函数
浏览器将所有上述功能保留在 Intl 全局对象中,以避免发生命名冲突。...Luxon 是一个有趣的选择。这个项目是由 Moment.js 维护者之一发起的,他们希望提供一些不同的 API,但不想在 Moment.js 中破坏任何东西。...通过从头编写新库,他能够改变一些重要的事情。最重要的是 Luxon 使用了国际化 API。多亏了这一点,它不必像Moment 那样发布国际化文件。 我们还需要考虑浏览器支持。...Sine Luxon 专注于使用原生 API,但并非每个浏览器都能完整的支持。如果你对此担心的话,也可以考虑使用 polyfill。...并非所有浏览器都支持上述功能,记得在使用钱先进行检查,在必要时可以使用polyfills【https://www.npmjs.com/package/intl】。
.NET 中提供了一些线程安全的类型,如 ConcurrentDictionary,它们的 API 设计与常规设计差异很大。如果你对此觉得奇怪,那么正好阅读本文。...---- 不确定性 像并发集合一样,如 ConcurrentDictionary、ConcurrentQueue,其设计为线程安全,于是它的每一个对外公开的方法调用都不会导致其内部状态错误...对于并发,如果有多次查看或者修改状态,必须加锁 比如以下方法,是试图一个接一个地依次执行 _queue 中的所有任务。...1 个方法组合在一起才能使用的 API,这会让调用方获取不一致的状态。...对于多线程并发导致的不确定性,使用方虽然可以通过 lock 来规避以上第二条问题,但设计方最好在设计之初就避免问题,以便让 API 更好使用。
在TM 中@resource 是可以从外部加载资源的, 用法如下 // @resource 使用 作为接受资源的变量名 后面紧跟 资源的地址 如 // @resource bootstrapcss https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css...可以使用多个标签, 获取资源内容是用 GM_getResourceText(name)与GM_getResourceURL(name) // ==UserScript== // @name
例如 CSP违规, Feature Policy 违规,使用了废弃API,浏览器崩溃和网络错误等是可以使用 Reporting API 收集的一些信息。...简介 有些错误你可能在开发的时候永远都看不到,但是生产环境中可能出现,因为不同的用户、不同的使用环境、不同的浏览器都有可能出现意想不到的问题。...浏览器捕获,排队和批处理,然后在最合适的时间自动发送报告。报告是由浏览器在内部发送的,因此使用 Reporting API 时几乎没有性能问题(例如与应用程序发生网络争用)。...它使用新的 NEL HTTP 响应头来设置,告诉浏览器收集网络错误,然后与 Reporting API 集成,将错误报告给服务器。...总结 Reporting API 无疑是做端监控同学的福音,它省去了我们很多需要在前端监控中需要自己做的工作,未来浏览器还会将更多的上报类型应用到 Reporting API ,未来将会作为诊断网站问题的重点工具
在 Angular 中,服务是在彼此不认识的类之间共享信息的好方法。通过使用服务,你将能够: 从应用程序中的任何组件获取数据 使用Rxjs操作符和其他操作符….....将其用作状态管理(使用 subjects) 并且有一个干净漂亮的代码 RxJS可以用于任何框架或纯javascript。这意味着下面的代码可以工作在Vue.js或 React中。...RxJS是一个库,通过使用可观察序列来组合异步和基于事件的程序。 RxJS提供了大量的数学、转换、过滤、实用、条件、错误处理、连接类别的操作符,在响应式编程中使用这些操作符时,生活会变得很简单。...开始 安装 $ npm install axios rxjs axios-observable 创建一个包含所有API服务的文件夹,通常我将其命名为services 我还在src/ services中创建了它...subject,而且这比在每个组件中创建一个类的对象要好。
WebKit2提供稳定非阻塞式基于C的API,多数API对平台独立(agnostic)。...为了获得非阻塞能力,Webkit2使用了一些技术,正式这些技术的使用,使得Webkit能给它的使用者带来大量的功能,这些技术包括: 通知式的客户回调,例如didFinishLoadForFrame。...这些类型的API通知使用者:发生了某件事,然而并不给他们机会去处理它。 策略式的客户回调,例如decidePolicyForNavigationAction。...这些类型的API允许使用者有空时才对某个动作做处理,同时通过监听器对象把发生了某个动作这件事告知页面。...这些类型的API允许使用者选择预先定义的策略,不需要回调函数对UIProcess的参与。这些类型的API可能是一套枚举类型的特殊策略,或者是带通配符的字符串列表等。
今天遇到一个应用场景: 在需要在自定义的Interceptor中判断用户密码是否过期,如果过期,则重定向到修改密码页,强制修改密码,同时给出提示:“您的密码已过期,请修改密码” 判断逻辑很简单,但是重定向的时候需要前台有消息提示...,如果是在Controller中,可以在方法上注入RedirectAttributes参数,但是Interceptor中默认没有这个参数,那么我们如何实现RedirectAttributes的flashMessage
原文地址:How to Create a Secure Node.js GraphQL API 作者:Marcos 本文的目的是提供一份快速指南 -- 《如何快速在如何在 Node.js 中创建安全的...实际上,在这些场景中,你都会发现有些 API 你并不需要详细了解它。比如,你不需要知道他们是如何构建的,也不需要在自己的系统中使用和它们一样的技术。...所以当两者通过 API 的形式来进行通信时,其他项目也可以使用同样的方式来工作。 如果你在一个大团队中工作,可以将它拆分成前端和后端两个团队,这样他们就可以使用相同的技术栈来工作从而提高效率。...; 创建模块 (Module) 的基本方法; 测试我们的 GraphQL API; 为了将内容侧重于开发使用,本文忽略了开发中一些重要的内容,简单总结如下: 新增内容时需要校验 对服务中的错误进行正确处理...请随意使用、fork、提 issue 和 PR。请注意,本文中所提到所有标准和建议都不会是一成不变的。 这只是许多构建 GraphQL API 方法中的一种。
前言 之前写了一篇如何在windows系统上安装Tensorflow Object Detection API? 然后就想着把数据集换成自己的数据集进行训练得到自己的目标检测模型。...于是就自己来撸一篇教程,方便自己也给别人一些参考吧~ 目录 基于自己数据集进行目标检测训练的整体步骤如下: 数据标注,制作VOC格式的数据集 将数据集制作成tfrecord格式 下载预使用的目标检测模型...数据标注,制作VOC格式的数据集 数据集当然是第一步,在收集好数据后需要进行数据的标注,考虑到VOC风格,这里推荐使用LabelImg工具进行标注。 ?..._coco faster_rcnn_resnet50_coco faster_rcnn_resnet101_coco 小詹选择的是上方链接中对应下图的那个,自己视情况而定即可。...训练模型只需要运行object_detection/legacy路径下的train.py程序即可。(当然object_detection API安装是大前提,具体看上一篇文章!)
应用程序可以使用专用API(如Web存储API或IndexedDB)来存储令牌。应用程序也可以简单地将令牌保存在内存中或将其放在cookie中。...因此,在使用localStorage时,请考虑终端安全性。考虑并防止浏览器之外的攻击向量,如恶意软件、被盗设备或磁盘。 根据上述讨论,请遵循以下建议: 不要在本地存储中存储敏感数据,如令牌。...下面的摘录显示了如何在JavaScript中使用内存处理令牌的示例。...在使用JavaScript闭包或服务工作者处理令牌和API请求时,XSS攻击可能会针对OAuth流程,如回调流或静默流来获取令牌。...然后令牌用于安全访问API。 总结 使用OAuth和访问令牌可以最好地保护API访问。但是,JavaScript应用程序处于不利地位。浏览器中没有安全的令牌存储解决方案。
首先,要在 Android 代码中打开调试的开关: webview.setWebContentsDebuggingEnabled(true); (注意:API level 要在 19 以上才有用。)...然后呢,运行 Android 程序,再打开 Chrome 浏览器,在地址栏输入 chrome://inspect/#devices,回车,然后找到这个 device,点击“inspect”,就欧了。
其实,浏览器端早就提供了 Web Crypto API,我们就可以利用浏览器原生的接口来实现摘要hash啦,这样无论是在性能上,还是安全性上,都是最优解。...从caniuse反应的兼容性看,大部分浏览器都已经支持了,只要不使用低版本浏览器,都是可以放心使用的。当然,如果一定要支持,可以使用第三方库兜底。 让我们来认识一下 Web Crypto API。...Web Crypto API Web Crypto API 是一组以构建密码学系统为目标的让脚本可以使用原生加密算法的接口。...如果我们设计一套密码学系统,那么这里不仅需要使用密钥、签名、导出、加密等等,还要在这些基础的API使用之上,设计一套前后端对齐的加密协议,否则不可能做到真正安全的加密验证。...市面上比较多情况下,会习惯使用md5摘要,但是Web Crypto API中没有提供直接的md5摘要算法,因此,我们只能从众多SHA算法中挑一个。
在本教程中,我们将了解如何使用Nginx的头模块来实现浏览器缓存。 准备 要学习本教程,您需要: 一台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。...第1步 - 创建测试文件 在此步骤中,我们将在默认的Nginx目录中创建多个测试文件。稍后我们将使用这些文件来检查Nginx的默认行为,然后测试浏览器缓存是否正常工作。...第2步 - 检查默认行为 默认情况下,所有文件都具有相同的默认缓存行为。为了探索这一点,我们将使用我们在步骤1中创建的HTML文件,但您可以使用任何示例文件运行这些测试。...在下一步中,我们将使用headers模块附加缓存控制信息。这将使浏览器在本地缓存一些文件,而无需明确询问服务器是否可以这样做。...最后一项设置是~image/,这是一个正则表达式会匹配所有在他们的MIME类型名称包含image/的文件类型(如image/jpg和image/png)。
在本教程中,我们将了解如何使用Nginx的头模块来实现浏览器缓存。 准备 要学习本教程,您需要: 一台已经设置好可以使用sudo权限的非root账号的Ubuntu 16.04服务器,并且已开启防火墙。...第1步 - 创建测试文件 在此步骤中,我们将在默认的Nginx目录中创建多个测试文件。稍后我们将使用这些文件来检查Nginx的默认行为,然后测试浏览器缓存是否正常工作。...第2步 - 检查默认行为 默认情况下,所有文件都具有相同的默认缓存行为。为了探索这一点,我们将使用我们在步骤1中创建的HTML文件,但您可以使用任何示例文件运行这些测试。...在下一步中,我们将使用headers模块附加缓存控制信息。这将使浏览器在本地缓存一些文件,而无需明确询问服务器是否可以这样做。...头模块是核心Nginx模块,这意味着它不需要单独安装即可使用。 要添加标题模块,请用您喜欢的文本编辑器中打开在nano中的默认的Nginx配置文件。
修改前:Unittest使用ddt后生成的测试报告用例名称为:图片即就是,以“testxx数字”为格式的用例名称,感觉满足不了我们的测试需求,不够直观。那么怎么修改呢?...=\d)', '_', test_name) 从方法mk_test_name中,我们看到该方法的描述是“Generate a new name for a test case.”...,即就是为测试用例创建一个名称,那么改这个方法就行了方法中返回的是name和index,即"{0}_{1}".format(name, index)那么就明白了,我们改返回的内容就行了修改后def mk_test_name...,增加value的字典判断 return "{0}_{1}_{2}".format(name, index, value.name) # 修改的地方,增加返回的值 if type(value...,name和function必须是execl用例中整正存在的表头,这里我是把两个表头合并了(name是我表格中接口的名称,function是表格中接口的功能描述) except: # 增加的地方
领取专属 10元无门槛券
手把手带您无忧上云