小编Joh*_*nGB的帖子

Google Play服务返回使用非Google密钥签名的令牌

我有一个Android客户端通过使用从Google Play服务获取身份验证令牌GoogleAuthUtil.getToken(Context context, Account account, String scope).

然后将其发送到后端(Go)服务器,该服务器检查该令牌是否来自https://www.googleapis.com/oauth2/v1/cert中的一个Google签名证书.为此,它需要在令牌标头中查找分配给"kid"的证书.

99%的情况下,这很好用,但我经常会遇到"孩子"与任何已发布的Google证书不对应的情况,因此我无法授权令牌.

编辑:

我已经在服务器上添加了大量的日志记录来尝试跟踪它,并且有一些关系值得注意:

  1. 任何给定的无效kid仅用于单个用户.我经常会在同一个用户的几天内看到多个具有给定无效的请求kid,但只能来自该用户.
  2. 提供无效的用户kid从不kid对任何请求使用有效,或者对请求使用任何其他kid请求,即使它们相隔数天.Afaik Google每24小时左右循环一次证书.
  3. 许多用户使用较旧的客户端版本.大多数用户在发布新版本的一两天内升级,但大多数使用无效证书密钥的用户都使用几周前的版本.
  4. 这些要求来自全球各地,与我们的用户群一致.
  5. 这些要求来自于我们的用户群.
  6. 这些请求来自各种设备,制造商和型号.

我目前的想法是,它可能来自从谷歌播放以外的网站下载APK的用户,但我现在无法验证这一点.

编辑:有一个问题跟踪器,但它似乎已被标记为低优先级.如果有人遇到此问题,请在跟踪器上告知.https://issuetracker.google.com/issues/37734997

android certificate jwt google-play-services

36
推荐指数
1
解决办法
730
查看次数

即使在包装时,如何将左对齐文本居中?

我需要在div中居中一个左对齐文本块,但我需要将文本块的视觉宽度放在居中而不是块本身.

在许多情况下,这可能是相同的,但想想一个div相当狭窄的情况(想想移动宽度)和文本太长而无法放在一条线上,所以它需要溢出.

在下面的示例中,我将文本块显示为浅蓝色来说明,但实际上它们将与父div(白色)颜色相同.在使用的任何文本中也没有换行符.

在此输入图像描述

1a中,文本只有一行,并且小于文本块的最大宽度,因此我可以将文本块设置为文本的宽度,并且没有问题.

但是,在2a中,文本比最大宽度长,因此包裹到下一行.这样做的结果是可见文本块不再出现居中.

如何仅使用HTML和CSS 将这两种情况显示为1b2b

编辑1:似乎每个人都在告诉我如何实现1a和2a中的情况,但我已经有了.我想实现1b和2b的情况.

编辑2:我使用的代码与David在其链接中提供的代码基本相同(http://jsfiddle.net/davidThomas/28aef/).对文本区域使用颜色只是为了说明这一点.如果将其更改为白色(http://jsfiddle.net/28aef/2/),您可以看到文本块不再看起来居中(即左右边距不相等)

html css alignment text-alignment

30
推荐指数
2
解决办法
4万
查看次数

更改Google Cloud Platform日志中的显示时区

如何更改Google Cloud Platform日志中显示时间的时区?它目前显示具有CEST时间的日志,我希望看到UTC时间(这是它记录的服务器总是使用的).

logging timezone google-cloud-platform

18
推荐指数
3
解决办法
3578
查看次数

gsutil返回"找不到匹配项"

我正在尝试使用gsutil删除云存储桶的内容(但不是存储桶本身).根据文档,命令应该是:

gsutil rm gs://bucket/**

但是,每当我运行它(当然我的存储桶名称被替换)时,我得到以下响应:

zsh: no matches found: gs://my-bucket/**

我已经检查了权限,并且拥有所有者权限.此外,如果我直接指定存储桶中的文件,则会成功删除该文件.

其他可能重要的信息:

  • 我的桶名称中有一个" - "(类似于"my-bucket")
  • 云存储将我的使用日志保存到存储桶中

如何删除存储桶的内容?

zsh google-cloud-storage gsutil

16
推荐指数
1
解决办法
1582
查看次数

在测试期间控制最终的AppEngine数据库一致性

我有一个用Go编写的AppEngine应用程序,我正在努力改进我的测试.

我需要运行的部分测试是对同一对象的一系列创建,更新,删除查询.但是,鉴于数据存储最终是一致的(这些不是子对象),我目前仍然使用a time.Sleep(time.Second * 5)来为SDK中的模拟数据存储提供足够的时间来传播一致性.

这导致测试需要很长时间才能运行.如何在不重写代码以使用祖先查询的情况下强制执行更强大的一致性测试?

google-app-engine consistency go google-cloud-datastore

6
推荐指数
2
解决办法
411
查看次数

解码 Google Cloud Storage 日志中的请求 ID

Google Cloud Storage 日志包含一个字段,在文档s_request_id中将其描述为“请求标识符” 。它看起来是 base64url 编码的,长度可变,范围为 90-130 个字符(在我的日志中)。

这对于一个简单的 ID 来说似乎太长且不规则,所以我希望它是触发日志的 HTTP 请求的某种编码。

该字段是如何r_request_id生成的,以及可以从中提取哪些信息(如果有)?


为了提供帮助,这里有一些示例数据:

s_request_id:AEnB2UpjhBkYMympt9UW0R3yQ0Bqk5-jXzHdiJ-WVKJp7AYfSupObC5pvInXWQptATRMqUon4EcJmFnaRtT77EYH_Za7zLiooPQp6fDKhBATiOTrxqSB4y0

时间微秒:1520197206174280

logging httprequest google-cloud-storage google-cloud-platform

5
推荐指数
0
解决办法
582
查看次数

如何在Sencha Touch中创建可调整大小的文本区域?

我在Sencha Touch有一个应用程序,我有一个textareafield.在Chrome中,这是可调整大小的,但在使用iPhone时却没有(我没有在Android设备上试过).

我需要一个文本输入区域,人们可以输入从一个或两个单词长到多个句子的文本.所以我需要这个来自动调整大小 ; 有一些手动调整大小的方法; 或者在其中滚动的某种方式.

到目前为止,我一直无法使用Sencha Touch做任何这些.如果有人能指出我可行的解决方案,我将非常感激.它不需要是Sencha Touch中的任何特定组件.

textbox resize autoresize sencha-touch sencha-touch-2

1
推荐指数
1
解决办法
3615
查看次数

如何为常用工作文件夹设置bash别名?

我想设置一个bash别名或函数(让我们称之为"myfolder")到一个公共工作目录(让我们称之为~/some/deep/working/folder),我希望能够像这样调用它:

cd myfolder/bob 访问子文件夹"bob".

如果我使用alias myfolder='~/some/deep/working/folder',我可以使用cd myfolder,但我不能使用cd myfolder/bob.

如何首先进行别名扩展,然后在执行命令之前将任何其他文本添加到命令中?

bash alias function

1
推荐指数
1
解决办法
41
查看次数