小编tim*_*imh的帖子

为什么Google OAuth2会在我再次将其发送到auth url时重新询问用户的权限

使用旧的谷歌openid,当我发送一个用户(之前选择加入我的应用程序)到auth url时,它会立即将它们重定向回我的应用程序.

现在,使用OAuth2,auth url不断询问用户是否允许.我读了一些关于这个的文档,但我没有得到的是我应该如何工作:

  1. 用户通过我的应用登录谷歌并单击"允许"获取权限
  2. 几天后,cookie被清除,用户回到我的网站,点击"登录谷歌"
  3. 用户不会再次被要求获得许可,他们会立即登录.

我认为这与在步骤1中存储身份验证令牌或刷新令牌有关,但在步骤3中,我不知道他们是谁,所以我如何将它们与正确的身份验证或刷新令牌匹配以获得有效访问令牌.

在我的测试中,当我在步骤1中将它们发送到原始身份验证URL时,会再次要求他们获得权限.

编辑:找到解决方案

创建auth url时,google-api默认设置"approval_prompt = force".

oauth-2.0

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

如何使隐藏(ng-cloaked)项目保留其可见空间

在表格中......我有一些动作按钮,当鼠标越过该行时,使用ng-cloak和ng-show显示.

问题是,当图标出现时,它占用的空间比不存在时更多,并且它周围的html会跳转.

行动中的问题的例子

我甚至将我的CSS设置为使用display:none进行ng-click,我认为这应该保留隐藏元素占用的空间(而不是可见性:隐藏).

我怎样才能解决这个问题?或者你能想到更好的方法吗?

     <tr id="treeHistoryItem" ng-repeat="o in tree.history" 
             ng-mouseover="showEdit=true" ng-mouseleave="showEdit=false">

          ....

         <td align='right'>
            <a ng:cloak ng-show="showEdit" href 
              ng-click="removeTreeRec(o.$$hashKey)" 
               class='fa fa-times _red _size6' ></a>
        </td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

这是一个更好的例子:http://plnkr.co/edit/POA9b2pZA9QbBgcMsxBE?p = preview

javascript css angularjs

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

如何检查另一个对象内部的变量是否设置(js)?

我想这样做:

if(a.b.c) alert('c exists')   //produces error
if(a && a.b && a.b.c ) alert('c exists')   //also produces ReferenceError
Run Code Online (Sandbox Code Playgroud)

我知道这样做的唯一方法(编辑:这显然是唯一的方法):

if(typeof(a) != "undefined" && a.b && a.b.c) alert('c exists');
Run Code Online (Sandbox Code Playgroud)

或某种类似的功能......

if(exists('a.b.c')) alert('c exists');
function exists(varname){
    vars=varname.split('.');
    for(i=0;i<vars.length;i++){
       //iterate through each object and check typeof
    }
}
//this wont work with local variables inside a function
Run Code Online (Sandbox Code Playgroud)

编辑:解决方案以下 (由Felix信任此线程,我只是稍微调整了一下 检查对象成员是否存在于嵌套对象中)

这有效:

if (typeof a != 'undefined' && a.b && a.b.c) alert('c exists')
Run Code Online (Sandbox Code Playgroud)

但我发现的最好的事情就是把它放到一个函数中.我使用了2个不同的函数,一个用于在对象中获取变量,另一个用于检查其是否设置.

/**
 * Safely retrieve a property deep in an object …
Run Code Online (Sandbox Code Playgroud)

javascript

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

通过iOS深层链接传递身份验证令牌是否安全?

我正在设计一个webapp/mobileapp安全流程,其中没有密码,只有通过短信发送到手机的身份验证令牌.这有什么缺陷?

计划:

  • 电话接收带有嵌入式邀请令牌的短信链接 http://domain.com/invite/ABCD
  • 用户点击,转到Web应用程序,要求用户安装移动应用程序(通过深层链接,传递相同的令牌 myapp://invite/ABCD
  • 加载应用程序时,邀请令牌ABCD被发送到服务器并交换为a auth token和a session token.
  • Auth token 永久存储在应用程序的本地存储中.
  • Session token用于连续的api调用并且有效24小时,然后Auth token将再次用于交换新的session token

                                                                +---+
                                                                |   |
+---------+ <---------------------------------------------------+   |
| Invite  |                                                     | S |
| Link    |                               send invite           | E |
| rec'd   |   +---------+   +--------+    token                 | R |
| via     |   |WebApp:  |   |        +----------------------->  | V |
| SMS     |   |deep     |   | ios App|                          | E |
|         +-> …
Run Code Online (Sandbox Code Playgroud)

security authentication ios

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

如何从命令行在Linux(ec2/ubuntu)上运行/执行adobe AIR文件(没有gui)

我试图从命令行在Linux机器(ubuntu)上执行.AIR文件,并忽略GUI.

这就是事情.大约6mo我能够做到这一点,但我忘记了我是怎么做到的,而且我只是想通过查看服务器上的线索来弄清楚它是如何完成的.

  • 我看到了我最初使用的MainSimple.air文件.
  • 我看到我以某种方式将它安装到/ opt/MainSimple/bin/MainSimple(现在是二进制文件,而不是空气)
  • 我看到我的脚本文件运行该文件,并成功执行.

--- runAir.sh ---

  #!/bin/sh
  export DISPLAY=:2
  /opt/MainSimple/bin/MainSimple &
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,现在我有了一个新的/不同的air文件...如何让它"安装"或更改/编译成二进制文件,就像我之前做的那样?

我知道.air文件只是一个zip文件..我解压缩它,并且它们没有/ bin目录.

air linux bash

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

如何使用$ variable作为定义常量的名称来访问php定义的常量

我有一个使用define()定义的变量我想在常规的php $变量中存储该变量名称的一部分,然后通过动态设置名称来访问该定义的变量.即:

define('xxx_yyy',123);
$a='xxz';
$b='_yyy';


//How to I echo out "123" now?  (without using echo xxx_yyy);
//Something like these (don't work):
echo $a$b;
echo {$a$b};
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的是:

$defined=get_defined_vars();
echo $defined[$a$b];
Run Code Online (Sandbox Code Playgroud)

但这似乎很笨拙

php

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

标签 统计

javascript ×2

air ×1

angularjs ×1

authentication ×1

bash ×1

css ×1

ios ×1

linux ×1

oauth-2.0 ×1

php ×1

security ×1