使用旧的谷歌openid,当我发送一个用户(之前选择加入我的应用程序)到auth url时,它会立即将它们重定向回我的应用程序.
现在,使用OAuth2,auth url不断询问用户是否允许.我读了一些关于这个的文档,但我没有得到的是我应该如何工作:
我认为这与在步骤1中存储身份验证令牌或刷新令牌有关,但在步骤3中,我不知道他们是谁,所以我如何将它们与正确的身份验证或刷新令牌匹配以获得有效访问令牌.
在我的测试中,当我在步骤1中将它们发送到原始身份验证URL时,会再次要求他们获得权限.
编辑:找到解决方案
创建auth url时,google-api默认设置"approval_prompt = force".
在表格中......我有一些动作按钮,当鼠标越过该行时,使用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
我想这样做:
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) 我正在设计一个webapp/mobileapp安全流程,其中没有密码,只有通过短信发送到手机的身份验证令牌.这有什么缺陷?
http://domain.com/invite/ABCDmyapp://invite/ABCDABCD被发送到服务器并交换为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) 我试图从命令行在Linux机器(ubuntu)上执行.AIR文件,并忽略GUI.
这就是事情.大约6mo我能够做到这一点,但我忘记了我是怎么做到的,而且我只是想通过查看服务器上的线索来弄清楚它是如何完成的.
--- runAir.sh ---
#!/bin/sh
export DISPLAY=:2
/opt/MainSimple/bin/MainSimple &
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,现在我有了一个新的/不同的air文件...如何让它"安装"或更改/编译成二进制文件,就像我之前做的那样?
我知道.air文件只是一个zip文件..我解压缩它,并且它们没有/ bin目录.
我有一个使用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)
但这似乎很笨拙