小编osd*_*iab的帖子

Web Google Auth - 403 的解决方法:disallowed_useragent 存在吗?

StackOverflow 上有很多关于此问题的帖子,但没有一个为 Web 应用程序提供解决方法,以便在嵌入式浏览器(如 iOS 上的 Facebook/Facebook Messenger)中通过 Google Web Auth 登录服务;但我发现 Pinterest 的网络登录与 Google 按钮似乎可以正常工作,所以我想知道是否有人知道如何让它工作。

几年前,Google 禁止从 webview 登录 Google , Auth0 也发表了一篇有关解决方法的博客文章,但这一切似乎都集中在本机应用程序上,而不是提供 Google 作为登录选项的 Web 应用程序。

但我公司的应用程序是一个网络应用程序,我们希望当有人在 Facebook Messenger/Facebook 帖子上分享我们网站的链接时,用户可以使用 Google 登录,即使他们没有弹出本机 Safari 浏览器。根据上述文档,这似乎是不可能的 - 但实际上我发现 Pinterest 的“使用 Google 登录”按钮确实有效!所以看来有一种方法可以让 Google 登录正常工作(不确定他们是否与 Google 达成了特殊协议,或者他们是否正在做我们/Auth0 也可以做的事情)。

重现步骤:

  1. 在 iOS 中打开 Facebook Messenger(这应该也适用于 Facebook,但这说明了问题)
  2. 向自己发送一条包含 URL 的消息https://community.auth0.com
  3. 单击 Auth0 社区论坛的链接
  4. 点击登录
  5. 点击使用 Google 登录
  6. 您会看到 403: disallowed_useragent 错误。

为了证明似乎确实有一种方法可以在野外完成此操作:

  1. 确保您的手机未安装 Pinterest(否则您的手机将在本机应用程序中打开它)。
  2. 在 iOS 中打开 Facebook Messenger
  3. 向自己发送一条包含 …

authentication google-authentication webview google-oauth

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

npm run-script失败时的silencing错误

当您运行npm test并且失败时,您将获得测试输出+单个错误消息,如下所示:

npm ERR! Test failed.  See above for more details.
Run Code Online (Sandbox Code Playgroud)

但是,我创建了一个自定义脚本lint,如下所示:

// package.json
{
  // ...
  "scripts": {
    // ... definition for test ...
    "lint": "./node_modules/jsxhint/cli.js src/",
  }
}
Run Code Online (Sandbox Code Playgroud)

好吧,够简单.但是当你运行npm run lint并且它失败了,而不是看起来好看的错误npm test,你会在输出linter后得到一个大量的错误信息:

npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "run-script" "lint"
npm ERR! node v0.10.32
npm ERR! npm  v2.1.7
npm ERR! code ELIFECYCLE
# and ~15 more lines...
Run Code Online (Sandbox Code Playgroud)

有没有办法让所有这些垃圾沉默,所以我可以像npm test脚本一样有一个干净的输出?我看到他们是如何捕获npm源代码中的错误的,但是我认为我不能只是添加一个自定义命令而不会这样做npm...希望我错了!

但是,如果我是,我会把这样的任务推到像Grunt这样的工具上会更好吗?谢谢!

node.js npm

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

从shouldComponentUpdate中调用setState是否可以?

为了响应状态变化,我想触发另一个状态变化.这本质上是一个坏主意吗?

特定类型的场景是组件被建模为状态机,根据值来呈现不同的信息this.state.current_state.但外部事件可以通过通量存储器改变状态来提示它经历状态转换.这是一个人为的想法来实现这个想法:

我认为正确的生命周期方法是这样做的shouldComponentUpdate.这样的效果:

shouldComponentUpdate: function(nextProps, nextState) {
    if (nextState.counter > 4 && this.state.current_state !== DISPLAY_MANY) {
        this.setState({ current_state: DISPLAY_MANY });
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

在某些子组件中,counter可能会增加,所以counter我不想根据某个变量的值推断它会显示什么,而是想明确地编码状态.

真实场景比这更复杂,但希望这个场景足够详细,以便了解这个想法.做我正在想的事情可以吗?

编辑:修复代码示例,以避免通过添加额外的状态条件触发无限循环

flux reactjs reactjs-flux

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

在vim中使用tsconfig.json进行tsc with syntastic

我想使用syntastic插件为vim我提供实时错误检查,同时我正在编写打字稿文件,使用tsc.我已经tsc激活了vim.有关如何tsc使用最接近的父tsconfig.json文件作为配置的任何建议?我发现tsc默认情况下没有这样做,这使syntastic配置变得困难.谢谢!

编辑:我认为它不使用的原因tsconfig.json是因为模块解析方法之类的选项似乎不起作用("require"未定义),并且它也没有捕获我在files属性中定义的定义文件tsconfig.json.

我尝试解决这个问题失败了:

let g:syntastic_typescript_checks=['tsc', 'tslint']

" typescript: find tsconfig.json
function! FindTypescriptRoot()
    return fnamemodify(findfile('tsconfig.json', './;'), ':h')
endfunction

let g:syntastic_typescript_tsc_args=['-p', FindTypescriptRoot()]
Run Code Online (Sandbox Code Playgroud)

这导致Syntastic吐出给我这个错误:

app.ts|| TS5042: Option 'project' cannot be mixed with source files on a command line.
Run Code Online (Sandbox Code Playgroud)

这可能是因为它正在运行一个命令tsc -p /path/to/project/ app.ts,这是非法使用该标志...但我不明白为什么我的设置tsconfig.json被忽略syntastic:(

vim typescript syntastic

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

PHP:如何从别名中获取完全限定的类名?

在PHP中,如果我想获得一个use声明中包含的类的完全限定类名,我该怎么做?例如,

<?php
namespace MyNamespace;

use Namespace\To\Class as MyClass;

function getNamespaceOfMyClass() {
    // Return ??
}

echo getNamespaceOfMyClass();
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以做get_class(new MyClass()),但如果我不能/不想做一个实例MyClass呢?谢谢!

php alias namespaces class

10
推荐指数
2
解决办法
5431
查看次数

从纱线工作区子包内部,运行根级脚本

我想知道:如果您的终端的当前工作目录位于纱线工作区内部,是否有一种方法可以运行在项目根目录中定义的纱线脚本,而不将当前目录更改为工作区之外?

例如,您可以通过运行来运行特定工作区的命令yarn workspace workspace-name script-name,但是是否可以使用该yarn workspace命令来定位根包本身而不是子包?

node.js yarnpkg yarn-workspaces

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

辅助功能:在密码输入中显示/隐藏密码按钮

密码输入具有显示/隐藏按钮是很常见的,但我在网上发现很少有关于与其相关的可访问性问题的内容 - 我是否应该将任何类型的 ARIA 属性附加到按钮或密码输入?是一个复选框还是一个触发JS的按钮也能达到很好的效果?

不知道我应该注意什么,作为一个不太熟悉但想要了解可访问性最佳实践的人。

html javascript accessibility wai-aria

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

默认值:Rails资源路由的排除选项

一个小问题:

我正在使用Rails作为我的REST API,但由于它是一个RESTful API,我并不真正需要:new:edit路由任何我的资源,因为人们只会通过自动JSON请求完全与此API交互,而非图形化.例如,不需要专用的编辑页面.

目前,我需要为每个定义的资源做类似的事情:

# routes.rb
resources :people, except: [:new, :edit]
Run Code Online (Sandbox Code Playgroud)

:except在每个资源上都有选项并不是什么大事/config/routes.rb,但有没有办法定义默认值,所以我不必在每个资源上都指定这个?我想稍微干掉这段代码,不要做任何蹩脚的事情,比如在任何地方传递默认选项的局部变量.

更一般地说,你可以设置Rails路由的默认选项:exclude吗?

谢谢!

ruby routing routes ruby-on-rails ruby-on-rails-4

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

在PHPStorm中由Code Sniffer触发的Xdebug

我有两个xdebug和Code Sniffer在我的PHPStorm安装上工作得很好,但真正讨厌的部分是调试器现在似乎将Code Sniffer错误视为断点并中断代码让我知道样式警告而我是试图测试代码.我该怎么做才能防止Code Sniffer被PHPStorm中的远程调试器捕获?

PS:我正在运行Apache,使用虚拟主机将某些URL映射到我的计算机上的文件夹,而代码嗅探器从未明确触发PHPStorm的远程调试器,而我的站点导致PHPStorm询问我是否要包含它的虚拟URL以进行调试.

php xdebug codesniffer

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

承诺链接:在接下来的回调中使用先前承诺的结果

我正在使用直接的ES6 Promises(使用es6-promise polyfill库),我遇到了一个问题,即访问以前在链接中的承诺的结果.

这个问题在Angular/Q的背景下是相同的,但是我对答案不满意,并想看看是否有更好的方法:

如何访问AngularJS保证链中先前承诺的结果?

请考虑以下代码段:

Student.find().then(function(student) {
        return HelpRequest.findByStudent(student);
    }, function(error) { //... }
).then(function(helpRequest) {
    // do things with helpRequest...
    // PROBLEM: I still want access to student. How can I get access to it?
});
Run Code Online (Sandbox Code Playgroud)

在链式承诺中,我想使用student我在第一个承诺中得到的对象.但正如所写,这无法访问它.我有几个明显的选择:

  1. 将学生存储在外部范围内的变量中(yuck)
  2. 我实际上不知道这是如何工作的,但另一个问题中的解决方案表明我可以调用then结果HelpRequest.findByStudent()和调用Promise.resolve内的组合结果Student.find().then.不过,我认为以下实现不起作用.

    Student.find().then(function(student) {
            var data = {student: student};
            HelpRequest.findByStudent(student).then(function(helpRequest) {
                data.helpRequest = helpRequest;
            });
            // PROBLEM: if HelpRequest.findByStudent(student) is asynchronous, how 
            // does this get the data before returning?
            return …
    Run Code Online (Sandbox Code Playgroud)

javascript promise ecmascript-harmony ecmascript-6

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