小编Thi*_*ark的帖子

如何让Google登录令牌有效期超过1小时?

我已成功实施Google登录.

我能够对用户进行身份验证,并在回复时收到令牌.但令牌在1小时后到期.

expires_in: "3600"

我尝试在文档中搜索 - https://developers.google.com/identity/sign-in/web/reference - 但找不到参数来延长令牌的生命周期.

在此输入图像描述


我实际上想做什么?

https://developers.google.com/identity/sign-in/web/backend-auth

用户成功登录后,使用HTTPS将用户的ID令牌发送到您的服务器

我正在向服务器发送每个请求的令牌:

endpoint/get?access_token=" + access_token

然后在我正在呼叫的服务器上 https://www.googleapis.com/oauth2/v3/tokeninfo

所以我有一个令牌,每个请求都经过身份验证,但在工作1小时后,该tokeninfo方法返回false,我需要重新验证用户身份.

在我的代码中,我通过存储所有历史记录来规避,access_tokens如果客户端使用旧令牌,我会检查历史数据并手动发出新令牌refresh_token (我的一个权限是授予离线访问权限)


是的,我很想知道:

  • 如何延长寿命access_token

要么

  • 鉴于有限的生命周期如何确保请求在后端进行身份验证?

authentication oauth access-token google-oauth google-signin

7
推荐指数
2
解决办法
4990
查看次数

从raspberry pi连接到iphone热点

目前,我可以从覆盆子(raspbian)连接到我的家庭wifi,但当我尝试连接到iphone(4s)热点我不能.Iphone是WPA2 Personal,而我的家庭网络是WPA/WPA2 Personal.我怀疑我的配置有问题,但我真的找不到什么.这是相关部分/etc/wpa_supplicant/wpa_supplicant.conf.

network={
    ssid="iPhone"
    psk="pass"
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
 }
Run Code Online (Sandbox Code Playgroud)

这里参考我家网络的配置(工作)(在同一个文件中):

network={
    ssid="wifi name"
    psk="pass"
    # Protocol type can be: RSN (for WP2) and WPA (for WPA1)
    proto=WPA
    # Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)
    key_mgmt=WPA-PSK
    # Pairwise can be CCMP or TKIP (for WPA2 or WPA1)
    pairwise=TKIP
    #Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)
    auth_alg=OPEN
}
Run Code Online (Sandbox Code Playgroud)

iphone networking wifi raspberry-pi

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

我认为维基百科上的Java矩阵链乘法算法是不正确的

我几乎可以肯定matrixChainOrder维基百科页面上的Java实现,Matrix Chain Multiplication,是不正确的.我会改变它,但我不是一个合格的数学家,并且在没有先审查我的观察结果的情况下做出改变并不舒服.我想我要问的是 - 我在这个断言中是否正确?k应该是k + 1,因为这个版本是基于零的索引编写的,而不像在同一页面上首次引入的伪代码版本.

protected int[][]m;
protected int[][]s;
public void matrixChainOrder(int[] p) {
    int n = p.length - 1;
    m = new int[n][n];
    s = new int[n][n];

    for (int ii = 1; ii < n; ii++) {
        for (int i = 0; i < n - ii; i++) {
            int j = i + ii;
            m[i][j] = Integer.MAX_VALUE;
            for (int k = i; k < j; k++) {
                int q = …
Run Code Online (Sandbox Code Playgroud)

java algorithm wikipedia matrix-multiplication

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

在后端使用Swift和Node.js的Socket.io示例

我试图在iOS上使用Swift找到一个Socket.io实现的工作示例,但到目前为止还不走运.我确实从Github得到了一些例子,但每个都有一些问题,我不知道为什么它们不起作用.

有谁知道我可以在哪里获得一个开箱即用的工作示例,以便我可以通过代码并了解实现?

ios socket.io swift

5
推荐指数
2
解决办法
8041
查看次数

Bootstrap 3 Navbar无响应

我一直在各种设备上测试我的bootstrap网站,以确保它的响应能力.我已经为除了导航栏之外的不同显示尺寸正确调整了大小.在我的浏览器上,当我水平调整窗口大小时,它似乎响应,按预期折叠菜单,但在移动设备上,我仍然看到导航栏就像在台式机或笔记本电脑上的全屏窗口中显示一样.这是我的导航栏的代码:

<div class="container">
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
      <div class="navbar-header">
        <a class="navbar-brand" href="#">
          <img alt="WinShir" src="img/rocket.png" /> WinShir
        </a>
        <button type='button' class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="sr-only">Toggle Navigation</span>
        </button>
      </div>

      <ul class="nav navbar-nav navbar-right collapse navbar-collapse">
        <li><a href="#signInModal" data-toggle="modal">Sign In</a></li>
        <li><a href="#signupModal" data-toggle="modal">Sign Up</a></li>
      </ul>
    </div>

  </nav>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将nav元素更改为div,看看是否有帮助但没有成功.我还删除了封闭的容器类div,看看是否有帮助,也没有运气.

html nav responsive-design twitter-bootstrap responsiveness

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

从 Sketch 菜单添加时,Processing 库安装在哪里?

当我在 Processing(草图 > 导入库 > 添加库)中添加库时,它安装在哪里?

processing

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

ajax错误导致成功函数调用

我正在努力寻找最近这篇文章的解决方案:使用数组值重复一个函数,在这样做的过程中,我将下面的代码拼接在一起.

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>

	var name_list = ['mike','steve','sean','roger'];
	
	var successAction = function(name) {
		console.log(name);
	}
	
	name_list.forEach(function(name) {
		jQuery.ajax({
			type: "GET",
			url: "https://www.google.com/", 
			dataType: 'html',
			success: successAction(name)
		});
	});
	
</script>
Run Code Online (Sandbox Code Playgroud)

我运行这个并不奇怪,返回以下错误消息:

跨源请求已阻止:同源策略禁止在https://www.google.com/上阅读远程资源.(原因:缺少CORS标题'Access-Control-Allow-Origin').


我的问题是 - 如果ajax请求导致出现四次失败,那么为什么成功函数被调用四次并相应地记录数组中的每个名称?

javascript ajax jquery

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

Java MongoDB 3.0驱动程序查询不带过滤器

我如何可以查询不同的Java MongoDB的3.0驱动程序?

我试图从MongoDB中的位置集合查询唯一类别记录.在Mongo shell中,这很简单:db.locations.distinct("categories");

在Java中,它不一样.

MongoClient client = new MongoClient();
MongoDatabase db = client.getDatabase("yelp");

//this will not compile, although examples from before 3.0 do it this way
MongoCursor<Document> c = 
    db.getCollection("locations").distinct("categories").iterator();
Run Code Online (Sandbox Code Playgroud)

java mongodb-query

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

条件语句中的Jekyll算术

我想在Jekyll的液体模板引擎中做一些基本的算法.我已经分配了一个变量numColumns,我试图在条件语句中使用它.

{% assign numColumns = 3 %}
Run Code Online (Sandbox Code Playgroud)

注意我在下面的表达式中省略了外部for循环loopindex.无论如何,这适用于-操作员并正确评估为2.

{% if loopindex == 3 - 1 %}
Run Code Online (Sandbox Code Playgroud)

但是,我试过的这些替代方案不起作用:

{% if loopindex == numColumns - 1 %}
{% if loopindex == numColumns | minus: 1 %}
{% if loopindex == {{ numColumns }} - 1 %}
{% if loopindex == {{ numColumns | minus: 1 }} %}
Run Code Online (Sandbox Code Playgroud)

如何numColumns用液体模板引擎从条件语句中减去一个?

liquid jekyll

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

Mathjax 中的换行符

在 Mathjax 中,如何将其写为由第二个分隔的双行=

在此处输入图片说明

这是 Mathjax 代码:

$= 2[2W(k-2) + (k-1)2^{k-1}] + k2^k= 2^2W(k-2)+(k-1)2^{k-1}+ k2^k$

在第二个=符号之前添加新行需要更改什么?

mathjax

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