我已经使用Devise和Omniauth为我的rails应用程序设置了用户身份验证.现在我想知道我应该在哪里开始为我想要创建的Android和iPhone应用程序使用相同的auth.
我应该使用我的/ auth/facebook的移动版本,还是应该直接从应用程序发送请求?
这是一个相当普遍的问题,但我发现无处可寻.
编辑:我刚刚向应用程序添加了Token Auth以与RESTful api一起使用,我只是错过了Omniauth/Facebook-token部分.
我正在使用javascript一些html和css进行游戏,我想知道是否有任何方法来保护游戏,以便用户不能只是调用game.php?result = victory来完成游戏并获得一些积分.
截至目前,这是我的解决方案.
对于一个机会游戏,启动页面结果已经到位,赢或松,然后只是做一些动画来显示它,但所有得分和赢/松的东西都是在服务器端完成的.
对于战斗游戏,只需从javascript调用中获取操作,并进行损坏计算,服务器上的操作员的反应,然后发送回数据.
但最后的解决方案意味着每次用户做任何事情时我都必须发送动作.这可能适用于转弯战斗游戏,但我认为对任何其他类型的游戏都会放慢速度.所以我的问题是,是否有某种安全的方式我可以准备我的JavaScript来保护发送的信息.
HTML5草案包含一个名为EventSource的API,用于通过javascript仅使用一个服务器调用来传输数据(通知).
仔细查看,我在Opera实验室的javascript部分找到了一个例子:
document.getElementsByTagName("event-source")[0]
.addEventListener("server-time", eventHandler, false);
function eventHandler(event)
{
// Alert time sent by the server
alert(event.data);
}
Run Code Online (Sandbox Code Playgroud)
和服务器端部分:
<?php
header("Content-Type: application/x-dom-event-stream");
while(true) {
echo "Event: server-time\n";
$time = time();
echo "data: $time\n";
echo "\n";
flush();
sleep(3);
}
?>
Run Code Online (Sandbox Code Playgroud)
但截至今天,似乎只有Opera实现了API,Chrome和Safari都没有工作版本(我在这里错了吗?)
所以我的问题是,是否有任何其他方式在javascript,也许更复杂,使用这一个流来获取数据?
编辑:我在寻找彗星的东西的权利,但我不知道如何重用:)编辑2:Apparentry,"X-DOM事件流"已更名为"text /事件流"编辑3:通过javanet 最近的这篇文章了解更多内容
我按照github设计维基上的教程进行了操作:https: //github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview
所以我为回调创建了一个omniauth控制器,但它绕过了正常的会话控制器,因此,没有设置可记忆的cookie.
解决这个问题的最佳方法是什么?
谢谢你的帮助.
编辑:我的控制器代码的要点:https://gist.github.com/913164 所以我认为重定向中的标志只是设置会话cookie,而不是可记忆的.
编辑2:我还有一个后门用于开发登录并避免我的本地机器上的FB连接:
def backdoor
if RAILS_ENV == "development"
@user = User.first
@user.remember_me!
sign_in_and_redirect @user, :event => :authentication
end
end
Run Code Online (Sandbox Code Playgroud)
也不起作用,所以我可能在其他地方遇到问题.
我有一个UITableView,图像内容很重.所以滚动不再流畅.我想添加一个计时器来加载图像,滚动时我为每一行创建计时器.如果单元退出视图,我取消定时器.如果不是我淡入图像.
我的问题是:是否有一个单元格的回调?我正在阅读文档,但我不确定我的需求是什么.
谢谢您的帮助 !
编辑:我正在使用的代码(这是三个20库,我使用的是自定义TTTableItemCell."_ tabBar1.tabItems = item.photos"是线路占用资源.在第一次加载时它没关系,因为照片正在从服务器异步加载,但当我向后滚动或重新加载视图时,它们都是同步加载的,并且滚动不再平滑,尤其是在iPhone 3G上.
- (void)setObject:(id)object {
if (_item != object) {
[super setObject:object];
Mission* item = object;
self.textLabel.text = item.name;
_tabBar1.tabItems = nil;
timerFeats = [NSTimer scheduledTimerWithTimeInterval:(0.5f) target:self selector:@selector(updateFeats) userInfo:nil repeats: NO];
//_tabBar1.tabItems = item.photos;
}
}
-(void)updateFeats {
DLog(@"timer ended");
Mission* item = self.object;
self._tabBar1.tabItems = item.photos;
}
Run Code Online (Sandbox Code Playgroud) 我有观察员设立奖励模型更改的徽章.它在我使用视图时有效,但是当我从控制台或种子文件中执行以下操作时,我似乎没有触发:Photo.create(:user_id => user.id,:file => file) .
任何的想法 ?
class ExplorerObserver < ActiveRecord::Observer
observe :photo
def after_save(photo)
user = photo.user
Explorer.award_achievements_for(user) unless photo.new_record?
end
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试在CSS中进行等距3D,这是我现在所拥有的:http: //jsfiddle.net/AagGZ/1/(仅用于测试的webkit)
我基本上使用盒子阴影,1px x 1xx来创建3D效果,这对我来说似乎非常讨厌.动画时,我正在尝试添加1px的新图层,因此动画失败(不是很好).
有没有更好的方法来实现它?我在CSS内容之前和之后想到了CSS Matrix并添加了div.
这应该是我的项目的一个很好的添加,而不是基本功能,所以我没关系它不能在IE9下工作.
谢谢你的帮助.
编辑:我重新打开了这个问题,因为你需要有一个纯色背景的事实是一个问题,在过滤器之前和之后创建大的"invisibile"白色箭头,并且当你在不同的背景上有不同的背景时,它会非常快部分网站或当您想要在另一个元素的悬停时更改背景.我现在要回到我的版本并禁用动画.欢迎任何想法!