我正在使用Google登录.用户来到我的站点并登录gapi.auth2.getAuthInstance().signIn()
,或者他们已经登录,当页面加载(或重新加载)时,我们获取状态.在这一点上,我有一个身份令牌好一个小时,我可以在服务器上验证.
当用户离开浏览器(例如,过夜)时,此令牌将过期.gapi.auth2.getAuthInstance().isSignedIn.get()
返回true,但令牌不验证.
如何登录用户并在会话处于活动状态时保持登录状态(即浏览器尚未关闭)?或刷新令牌?比重新加载页面更优雅的东西......
编辑:刷新令牌不是正确的答案; 我不想离线访问(并且不想要求权限).谷歌显然认为用户仍然登录我的应用程序; 用户可以重新加载页面并获取新令牌而无需再次提供凭据.当然有一些机制比隐藏的iframe更优雅,以获得更新的令牌?
虽然我有一个指定版本18的<dependencyManagement>部分,但是Maven正在转移guava版本16.
快速摘要:
gwizard-example
依赖于取决于 gwizard-config
gwizard-config
有一个父母pom, gwizard-parent
gwizard-parent
有<dependencyManagement>,它指定了番石榴的第18版值得庆幸的是这是一个开源项目,所以你可以直接看到poms:gwizard-parent,gwizard-config,gwizard-example.但是,这里有重要的一点gwizard-parent
:
<properties>
<guava.version>18.0</guava.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
...和gwizard-example中声明的简单依赖:
<properties>
<gwizard.version>0.5</gwizard.version>
</properties>
<dependencies>
<dependency>
<groupId>org.gwizard</groupId>
<artifactId>gwizard-config</artifactId>
<version>${gwizard.version}</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
gwizard-config的依赖树正确显示了番石榴18:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ gwizard-config ---
[INFO] org.gwizard:gwizard-config:jar:0.5
[INFO] +- com.google.inject:guice:jar:4.0-beta5:compile
[INFO] | \- com.google.guava:guava:jar:18.0:compile
Run Code Online (Sandbox Code Playgroud)
但是,gwizard-example的依赖树显示了guava 16(导致问题):
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ gwizard-example ---
[INFO] org.gwizard:gwizard-example:jar:1.0-SNAPSHOT
[INFO] +- org.gwizard:gwizard-config:jar:0.5:compile
[INFO] | +- com.google.inject:guice:jar:4.0-beta5:compile
[INFO] …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的单页javascript webapp,它使用"Google Signs In for Websites":https://developers.google.com/identity/sign-in/web/sign-in
如何为用户获取访问令牌?我需要在我的服务器上验证用户身份的可验证性.我不想离线访问; 我只想知道当Web客户端向我的服务器发送ajax请求时,我可以信任登录用户的身份.
我面前有一小段node.js代码,如下所示:
console.time("queryTime");
doAsyncIOBoundThing(function(err, results) {
console.timeEnd("queryTime");
// Process the results...
});
Run Code Online (Sandbox Code Playgroud)
当然,当我在我的(否则是空闲的)开发系统上运行它时,我得到一个很好的控制台消息,如下所示:
queryTime: 564ms
Run Code Online (Sandbox Code Playgroud)
但是,如果我将它投入生产,那么同时进行的同步调用是否会有多个异步调用,并且每个调用都会覆盖以前的定时器?或节点是否具有某种神奇的执行上下文,为每个"执行线程"提供一个单独的控制台计时器命名空间?
使用 Postgres,我想使用索引执行包含数组列的全文搜索。让我们从一个假设的模式开始:
CREATE TABLE book (title TEXT, tags TEXT[]);
-- tags are lowercase a-z, dashes, and $
Run Code Online (Sandbox Code Playgroud)
我们想要一个在标题和标签中搜索某些文本的查询。许多 SO 答案推荐的具有合理语义的简单查询是:
SELECT *
FROM book
WHERE to_tsvector('simple', array_to_string(tags, ' ')) || to_tsvector('simple', title)
@@ to_tsquery('simple', 'mysearchterm');
Run Code Online (Sandbox Code Playgroud)
这样可行。标签中的破折号和美元符号实际上不再存在,但这对于此应用程序来说是可以的。然而,我们有数百万条记录,需要一个索引:
CREATE INDEX book_fulltext_idx
ON book using GIN
((to_tsvector('simple', array_to_string(tags, ' ')) || to_tsvector('simple', title)));
Run Code Online (Sandbox Code Playgroud)
呃哦!这会失败,因为它array_to_string
不是 IMMUTABLE。有一些答案建议将 array_to_string 包装在不可变函数中:
CREATE FUNCTION my_array_to_string(arr ANYARRAY, sep TEXT)
RETURNS text LANGUAGE SQL IMMUTABLE
AS $$
SELECT array_to_string(arr, sep);
$$;
CREATE INDEX book_fulltext_idx
ON book using GIN …
Run Code Online (Sandbox Code Playgroud) 我通常在我的沙箱appid上运行appstats.但是,我有一个复杂的操作(基本上重建库存数据库)导致appstats炸毁我的实例,抛出OutOfMemoryErrors.即使实例尺寸较大,它仍然会失败.Appstats只想要太多内存.
我不需要appstats这个请求.理想情况下,我将调用一个方法,在任何ThreadLocal对象负责appstats集合,并告诉它旋转拇指几分钟.
我已经考虑过扩展AppstatsFilter以忽略某些URL,但是违规请求作为延迟任务执行,并且通过路径识别它有点复杂.
我怎么能告诉appstats暂停?
以防万一不清楚:上传我的应用程序版本并禁用appstats,运行我的任务,然后上传启用了appstats的版本就是我现在正在做的事情.我不想这样做.
我正在开发一个有点不同寻常的应用程序,其中10k客户正好计时,每隔3分钟左右一次尝试提交数据.这个'ab'命令相当准确地模拟了现实世界中的一个弹幕:
ab -c 10000 -n 10000 -r "http://example.com/submit?data=foo"
Run Code Online (Sandbox Code Playgroud)
我在Rackspacecloud VPS实例上使用Ubuntu 12.4上的Node.js来收集这些提交,但是,我看到Node的一些非常奇怪的行为,即使我删除了所有的业务逻辑并将http请求变为no-运.
当测试完成大约90%时,它会挂起很长一段时间.奇怪的是,这种情况一直发生在90% - 对于c = n = 10k,在9000; 对于c = n = 5k,在4500; 对于c = n = 2k,在1800.测试实际上最终完成,通常没有错误.但ab和节点日志都显示连续处理直到测试运行的大约80-90%,然后在完成之前长时间停顿.
当节点正常处理请求时,CPU使用率通常约为50-70%.在挂起期间,CPU上升到100%.有时它会保持在0附近.在不稳定的CPU响应和它看起来与实际连接数无关(只有%完成)的事实之间,我不怀疑垃圾收集器.
我试过在localhost和远程服务器上运行'ab' - 效果相同.
我怀疑与TCP堆栈有关的东西,可能涉及关闭连接,但我的配置更改都没有帮助.我的变化:
Sysctl的变化是:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_orphans = 20000
net.ipv4.tcp_max_syn_backlog = 10000
net.core.somaxconn = 10000
net.core.netdev_max_backlog = 10000
Run Code Online (Sandbox Code Playgroud)
我也注意到我倾向于在内核日志中获得这个消息:
TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters.
Run Code Online (Sandbox Code Playgroud)
我很困惑这个消息,因为TCP积压队列应该足够深,永远不会溢出.如果我禁用syn …
我的应用程序依赖于Google登录.突然,今天,该GoogleAuth.then()
方法已停止调用其回调.此代码不执行任何操作(不打印结果):
gapi.auth2.init({
client_id: 'MYID.apps.googleusercontent.com',
scope: 'profile email'
}).then(function() {
console.log("success called");
}, function() {
console.log("failure called")
});
Run Code Online (Sandbox Code Playgroud)
即使使用其他方法来查询signin(例如在isSignedIn和currentUser上创建侦听器)也能正常工作,此代码也不执行任何操作.
我们的代码没有改变,但这种破坏似乎在我们的客户群中慢慢滚动,感觉像谷歌做某种滚动部署一样模糊.目前这个问题已经有几个小时了.它已停止在我的笔记本电脑上工作,但仍然在我的手机上工作.我们在世界各地的许多客户都遇到了不同的结果.
这是Google的错误吗?如何向某人举报?
打字稿似乎在这里对我不利。这是我想要嵌入的内容:
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/BLAH?showinfo=0"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen></iframe>
Run Code Online (Sandbox Code Playgroud)
问题是allow
属性:
TS2339: Property 'allow' does not exist on type 'DetailedHTMLProps<IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement>'.
Run Code Online (Sandbox Code Playgroud)
...这是真的,它不在 index.d.ts 中。如何强制添加此属性,或以某种方式强制转换iframe
为任何类型等?
我试图弄清楚 AWS CloudWatch 指标 RequestCount 的含义。我能找到的唯一文档说The number of requests returned by the loadbalancer,这非常没有帮助:
这是总数还是某种比率?这些图表没有显示单调增加的总价值,这让我怀疑它是一个总价值。
此计数/比率是在什么时间段内发生的?会定期重置吗?
为什么互联网上没有人问这个问题?
monitoring amazon-ec2 amazon-web-services amazon-elb cloudwatch
javascript ×2
node.js ×2
amazon-ec2 ×1
amazon-elb ×1
apachebench ×1
appstats ×1
cloudwatch ×1
google-oauth ×1
google-plus ×1
java ×1
maven ×1
maven-3 ×1
monitoring ×1
postgresql ×1
reactjs ×1
sysctl ×1
tcp ×1
tsvector ×1
typescript ×1
ubuntu ×1
youtube ×1