小编mtj*_*hax的帖子

Facebook OAuth2访问令牌到期后刷新的正确方法是什么?

据我了解,这是使用OAuth2 API的新Facebook iframe画布应用程序的基本过程:

  1. 重定向到(或具有用户点击链接)应用程序的授权URL
  2. 用户授权并重定向到您的回调URL
  3. Callback使用"code"参数来获取访问令牌
  4. 访问令牌与Graph API一起使用来提取或推送信息

问题是访问令牌过期相对较快并且需要"刷新",所以我的问题是1)除了尝试使用它并简单地得到错误之外,你如何检测到令牌已经过期?2)获得新令牌的最佳做法是什么?

目前,我只是检测到尝试使用其访问令牌获取用户信息时出错,然后再次重定向到授权URL - 因为他们已经授权应用程序空白页闪烁并且他们被重定向回我的应用程序回调我得到一个新鲜的令牌.它太笨重了我无法相信这是正确的方法.

facebook facebook-graph-api oauth-2.0

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

如何在依赖于另一个尚未合并的git分支的新git分支上工作?

这是我的情景:

  • 我的项目遵循主题分支模式.

  • 我创建了一个分支来修复一些问题,让我们调用这个分支problem_fixes.我进行了更改,并提交了拉取请求.

  • 我需要开始处理一个新功能,所以我创建了一个名为my_feature的第二个分支并提交了一系列更改.

  • 在某些时候,我意识到my_feature依赖于尚未被接受和合并的problem_fixes(my_feature分支依赖于第一个分支的一些修复,没有它们我无法取得进展).

如果没有捣乱,我的项目会更快地接受并合并我的第一个分支,这里最好的流程是什么?

我想知道我是否需要基于problem_fixes(而不是master)启动新的第三个分支并在我的提交中合并到my_feature?或者,如果我简单地将problem_fixes合并到my_feature并继续工作也可以 - 假设problem_fixes首先合并为master,当my_feature合并时理论上应该没问题(?)

git branch feature-branch branching-and-merging

26
推荐指数
2
解决办法
3701
查看次数

如何将CarrierWave文件迁移到新的存储机制?

我有一个Ruby on Rails站点,其中模型使用CarrierWave进行文件处理,目前使用的是本地存储.我想开始使用云存储,我需要将现有的本地文件迁移到云端.我想知道是否有人可以指出这样做的方法?

使用模型属性的加分点,允许我在后台逐行执行此操作,而不会中断我的站点以延长停机时间(换句话说,某些模型行仍然具有本地存储,而其他模型行则使用云存储).

我的第一直觉是为每个使用云存储的模型创建一个新的上传器,所以我在每个模型上有两个上传器,然后将文件从一个传输到另一个,设置一个属性来指示应该使用哪个文件,直到它们全部转移,然后删除旧的上传者.这看起来有点过分了.

activerecord ruby-on-rails carrierwave

9
推荐指数
2
解决办法
4134
查看次数

使用CSS clip-path只影响webkit浏览器中的第一个对象?

我正在尝试使用CSS clip-path属性将SVG剪辑路径应用于页面中的某些元素.例如,HTML(请注意,clipPathUnits ="objectBoundingBox"允许圆圈以包含元素大小的分数表示):

setTimeout(function(){
    $('.circle:first div').addClass('clipped');
    setTimeout(function(){
        $('.circle:nth-of-type(2) div').addClass('clipped');
    }, 2000);    
}, 2000);
Run Code Online (Sandbox Code Playgroud)
.circle {
    width: 100px;
    height: 100px;
    overflow: hidden;
    margin-bottom: 10px;
}

.circle div {
    width: 100%;
    height: 100%;
    background: red;
    position: relative;
}

.clipped {
    -webkit-clip-path: url(#circle_clip);
    -moz-clip-path: url(#circle_clip);
    -o-clip-path: url(#circle_clip);
    clip-path: url(#circle_clip);
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="circle">
    <div></div>
</div>

<div class="circle">
    <div></div>
</div>

<svg>
    <defs>
        <clippath id="circle_clip" clipPathUnits="objectBoundingBox">
            <circle cx=".5" cy=".5" r=".5" />
        </clippath>
    </defs>
</svg>
Run Code Online (Sandbox Code Playgroud)

使用此代码,第一个元素显示正确地剪切成圆形,但第二个元素在Chrome和Safari中消失.在Firefox上出现两个元素,两个元素都被正确剪裁.

这是另一个小提琴实际上通过将剪辑应用于每个元素来实现它,在应用于第二个元素之前将其从第一个元素中移除,然后将第一个元素重新打开.有趣的是,定时器"动画"它一切正常.如果您只是在一个操作中添加和删除类,它就不起作用,就好像涉及竞争条件或者需要在修复生效之前完成渲染.

我做错了什么或者Webkit浏览器有错误吗?有人可以让这些小提琴工作吗?

svg webkit clipping

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