小编kur*_*kun的帖子

在Passport.js身份验证失败时发送回JSON响应

抱歉,我对node.js很新,所以我还没有能够解决这个问题.我正在使用Node.js作为iPhone客户端的后端API服务器.我正在使用Passport.js通过本地策略进行身份验证.相关代码如下:

// This is in user.js, my user model
UserSchema.static('authenticate', function(username, password, callback) {
    this.findOne({ username: username }, function(err, user) {
        if (err){
            console.log('findOne error occurred');
            return callback(err);
        }
        if (!user){
            return callback(null, false);
        }
        user.verifyPassword(password, function(err, passwordCorrect){
            if (err){
                console.log('verifyPassword error occurred');
                return callback(err);
            }
            if (!passwordCorrect){
                console.log('Wrong password');
                return callback(err, false);
            }
            console.log('User Found, returning user');
            return callback(null, user);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

// This is in app.js
app.get('/loginfail', function(req, res){
    res.json(403, {message: 'Invalid username/password'});
});

app.post('/login',
    passport.authenticate('local', …
Run Code Online (Sandbox Code Playgroud)

javascript authentication node.js passport-local passport.js

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

Passport.js:验证后如何访问用户对象?

我正在使用Passport.js以用户名和密码登录用户.我基本上使用Passport站点的示例代码.以下是我的代码的相关部分(我认为):

app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser(function(user, done) {
    done(null, user);
});

passport.deserializeUser(function(obj, done) {
    done(null, obj);
});

passport.use(new LocalStrategy(function(username, password, done) {
    User.findOne({ username: username }, function(err, user) {
        if (err) {
            return done(err);
        }
        if (!user) {
            return done(null, false, { message: 'Incorrect username.' });
        }
        if (!user.validPassword(password)) {
            return done(null, false, { message: 'Incorrect password.' });
        }
        return done(null, user);
        });
    }
));

app.post('/login',
    passport.authenticate('local', { failureRedirect: '/login/fail', failureFlash: false }),
    function(req, res) {
        // Successful login
        //console.log("Login successful.");
        // …
Run Code Online (Sandbox Code Playgroud)

node.js express

34
推荐指数
3
解决办法
4万
查看次数

CALayer Border出现在子视图上方(Z-order相关,我认为)

我搜索过但找不到这种行为的原因.

我有一个我正在设置的UIButton图像.以下是按钮的显示方式.请注意,这只是预期按钮设计的Photoshop:

在此输入图像描述

从本质上讲,它是一个方形的自定义UIButton,带有白色边框和一点周围的阴影.在右上角,有一个"X"标记,将以编程方式添加为子视图.

以下是实际应用中按钮的屏幕截图.此时,我只添加了一个阴影和X标记作为子视图:

在此输入图像描述

当我尝试添加白色边框时,它的外观如下:

在此输入图像描述

看起来白色边框出现在X标记子图层上方.我不知道为什么.

这是我正在使用的代码:

// selectedPhotoButton is the UIButton with UIImage set earlier
// At this point, I am adding in the shadow
[selectedPhotoButton layer] setShadowColor:[[UIColor lightGrayColor] CGColor]];
[[selectedPhotoButton layer] setShadowOffset: CGSizeMake(1.0f, 1.0f)];
[[selectedPhotoButton layer] setShadowRadius:0.5f];
[[selectedPhotoButton layer] setShadowOpacity:1.0f]; 

// Now add the white border    
[[selectedPhotoButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
[[selectedPhotoButton layer] setBorderWidth:2.0];

// Now add the X mark subview
UIImage *deleteImage = [UIImage imageNamed:@"nocheck_photo.png"];
UIImageView *deleteMark = [[UIImageView alloc] initWithFrame:CGRectMake(53, -5, 27, 27)];
deleteMark.contentMode = UIViewContentModeScaleAspectFit; …
Run Code Online (Sandbox Code Playgroud)

iphone z-order calayer

15
推荐指数
2
解决办法
4261
查看次数

如何限制Meteor中管理员用户的路由?

作为iOS开发人员,我对webdev很新.我正在研究Meteor并对路由有一些疑问 - 如果它们非常容易,我会道歉.

我正在使用Meteor Router程序包创建路由,但我想只有一些页面只能由admin用户访问.

  Meteor.Router.add({
        '/'         : 'home',
        '/admin'    : 'admin'
    });
Run Code Online (Sandbox Code Playgroud)

所以我有一个简单的路由设置如上,但我不知道如何限制访问/ admin路由.

它就像这样简单吗?什么是限制路径到/ admin页面并显示警告或甚至将它们重定向回/页面的好方法?

谢谢!

client.html

<head>
   <title>My App</title>
</head>

<body>
   {{renderPage}}
</body>

<template name="home">
    {{greeting}}
</template>

<template name="admin">
    {{greeting}}
</template>
Run Code Online (Sandbox Code Playgroud)

client.js

Template.admin.greeting = function () {
   var currentUser = Meteor.user();
   if (null !== currentUser && 'admin' === currentUser.username) {
       return "Hello Admin!";
   }
   else{
      return "Sorry, only admins can see this page";
   }
};
Run Code Online (Sandbox Code Playgroud)

meteor

8
推荐指数
1
解决办法
5312
查看次数

对Meteor感到困惑:如何在不写入数据库的情况下向所有客户端发送数据?

我实际上已经玩弄了Meteor一段时间,但我意识到我仍然缺乏一些(或很多!)对这个主题的理解.

例如,这是一个使用node.js/express/socket.io进行简单实时聊天的教程:http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with -nodejs插槽-IO-和expressjs /

在上面的示例中,通过socket.io,Web服务器接收一些数据并将其传递到所有连接的客户端 - 所有这些都没有任何数据库访问.

使用Meteor,在我看到的所有示例中,通过写入mongodb来更新客户端,mongodb然后更新所有客户端.但是,如果我不需要将数据写入数据库呢?将数据传递给所有客户端似乎是一个昂贵的步骤.

我相信我在这里遗漏了一些东西.更新所有客户端的Meteor方式是什么(比如简单的聊天应用程序),但不需要先花费数据写入数据库?

谢谢!

meteor

8
推荐指数
2
解决办法
3375
查看次数

UItableViewCell展开/折叠动画(扩展时工作,但不折叠)

作为背景,这个问题与我之前发布的这个问题有关:尝试从自定义单元格上的UIButton扩展/折叠UITableViewCell

总而言之,我有一个带有几个自定义表格单元格的UITableView.每个自定义UITableViewCell都有一个文本区域,后面是"查看更多"按钮.基本上,每个单元格最初将显示3行文本,但是当用户点击"查看更多"按钮时,单元格应扩展到整个文本区域高度.再次点击按钮将使单元格崩溃.

我认为这很难想象,所以我在这里拍了一段简短的视频:http://dl.dropbox.com/u/762437/cell-animation.mov

(它大约是一个3.5mb的文件,所以不应该花那么长的时间来加载).在视频中,我展示了一个进行展开/折叠动画的单元格.进行扩展时,"查看更多"按钮会向下动画.当再次点击它时,它只会跳回到原始位置而没有动画. 编辑:对不起,我应该更清楚.UITableView正确地为单元格设置动画,我要问的是如何正确地使"查看更多"按钮动画化.

我有扩展/崩溃工作(无论我做错了是另一回事!),但动画并不像我期望的那样工作.扩展动画有效,但不是崩溃.

在每个自定义UITableViewCell类中,当用户点击"查看更多"按钮时,我会调用一个IBAction.我还跟踪当前在NSMutableArray中展开的单元格.当用户点击"关闭"按钮时,该单元格将从阵列中删除.

在我的tableView的cellForRowAtIndexPath中,我检查数组以查看哪些单元格应该展开,哪些单元格应该以默认大小显示.

我正在使用此代码:

// Check if the array contains the particular cell, if so, then it needs to be expanded 
if([expandedRows containsObject:indexPath])
        {
            // Expand the cell's text area to fit the entire contents
            [cell.textLabel sizeToFitFixedWidth:cell.textLabel.frame.size.width];

            // Find the new Y-position of where the "Close" button.
            // The new Y position should be at the bottom of the newly expanded text label

            CGFloat bottomYPos = cell.textLabel.frame.origin.y + cell.textLabel.frame.size.height;

            // Get …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview uianimation

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

SQL选择此选项可使值仅出现一次

对于那些一直在用这个twitter-clone帮助我的人,谢谢!在你的帮助下,我成功地完成了大部分工作,最后到了追随者功能的最后几步.

现在,我有一个包含以下字段的数据集:用户名,推文,日期

数据的示例可能如下所示:

Username    Tweet             Date
kenny       hi!               2011-10-07 19:07:00
stan        hello             2011-10-05 18:07:00
kenny       looks like rain   2011-10-05 17:07:00
stan        hello             2011-10-05 14:07:00
cartman     authoritay!       2010-10-05 14:07:00
Run Code Online (Sandbox Code Playgroud)

我一直在努力研究产生数据集的SQL语句,其中每个用户只出现一次最新的推文.所以,基于上面的内容,看起来像这样:

Username    Tweet             Date
kenny       hi!               2011-10-07 19:07:00
stan        hello             2011-10-05 18:07:00
cartman     authoritay!       2010-10-05 14:07:00
Run Code Online (Sandbox Code Playgroud)

我一直在谷歌搜索SQL搜索并尝试过COUNT,DISTINCT,MAX的变种,但无济于事.任何帮助将不胜感激!谢谢!

mysql sql greatest-n-per-group

5
推荐指数
2
解决办法
3万
查看次数

拖动UIView部分方式,然后它自己移动

我有一个应用程序,底部有一个可拖动的UIView.可拖动的视图不完全在屏幕外,并且具有用户可以向上或向下拖动的"拉片".向上和向下拖动当前有效,但我想给它与Apple通知滑出抽屉相同的行为.

例如,如果我将视图向上拖出50%并从屏幕上移开我的手指,那么我希望可拖动的视图继续向上移动.同样,如果用户仅将视图拖出,例如向上30%,则视图应该回落到其默认位置.

理想情况下,虽然我可以上下拖动,但动作并非"有机"......

现在,我正在通过UIPanGestureRecognizer完成向上和向下拖动,以防万一与问题相关.

它是否可能与可拖动视图的Y位置的某些聪明的数学有关,然后用一些CAAnimations进行其余的移动?

可视化可能有点困难,所以我在下面添加了一些屏幕.

默认屏幕,底部有一个视图

视图通过右侧的选项卡向上拖动

谢谢!

iphone core-animation draggable uiview uipangesturerecognizer

4
推荐指数
1
解决办法
1022
查看次数

如何使用Meteor和Bootstrap添加搜索?

我正在尝试在我的Meteor应用程序中实现搜索.我不完全理解它是如何联系在一起的.此时,我有以下代码:

HTML:

<form class="navbar-search pull-left">
  <input type="text" class="search-query" placeholder="Search">
</form>
Run Code Online (Sandbox Code Playgroud)

JS:

Template.menubar.events({
  'keyup input.search-query': function (evt) {
    console.log("Keyup value: " + evt.which);
    if (evt.which === 13) {
      console.log("Got an Enter keyup");
      Session.set("searchQuery", "justATestVar");
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

当我按下不同的键进入搜索框时,我可以看到键盘的值,所以我知道事件正在被击中.捕获"输入"键盘也可以,但按Enter键会导致输入站点重新加载,当我这样做时:

Session.get("searchQuery")
Run Code Online (Sandbox Code Playgroud)

它返回undefined.

我不知道我是否正确处理了这个问题.基本上,我只想从搜索框中获取值,然后使用该值对我的集合进行搜索.任何帮助,将不胜感激!谢谢.

meteor

4
推荐指数
1
解决办法
2143
查看次数

Android Studio 0.2.6和ZBar项目设置

我使用的是最新的Android Studio 0.2.6和最新的ZBar Android SDK.到目前为止我做了什么:

  1. 创建了一个名为QRTest的全新项目
  2. 在我的项目中创建了一个名为libs的文件夹
  3. 将Zbar libs目录的内容放入我的项目文件夹中
  4. 右键单击项目中的zbar.jar文件并添加为库
  5. 在我的build.gradle文件中,编辑它以便它现在是:

    依赖{compile'c​​om.android.support:support-v4:13.0.0'编译文件('libs/zbar.jar')}

  6. 基本上将示例代码从ZBar android SDK示例复制到我自己的项目中.
  7. 该项目编译并运行正常(0错误,0警告),但它在运行时崩溃.日志显示:

09-01 16:06:02.026:W/dalvikvm(7050):异常Ljava/lang/UnsatisfiedLinkError; 在初始化Lnet/sourceforge/zbar/ImageScanner时抛出;

09-01 16:06:02.036:E/AndroidRuntime(7050):java.lang.UnsatisfiedLinkError中:致无法加载库:link_image [1891]:209无法负载所需的库 'libiconv.so' 的"libzbarjni.so '(load_library [1093]:未找到库'libiconv.so')

09-01 16:06:02.036:E/AndroidRuntime(7050):at net.sourceforge.zbar.ImageScanner.(Unknown Source)

看看我的MainActivity中的代码,它似乎在这里濒临死亡:

 /* Instance barcode scanner */
 scanner = new ImageScanner();
Run Code Online (Sandbox Code Playgroud)

这似乎告诉我,我不知道我没有正确导入我的Zbar库文件.任何有关如何获得这个非常基本的例子的帮助将不胜感激!

请注意,如果我使用Android Studio从ZBar Android SDK示例导入新项目,它会编译并运行正常.但是,它使用的是旧的ant构建系统.我宁愿使用新的gradle构建系统,这就是为什么我要将ZBar导入到一个全新的Android 0.2.6项目中.谢谢!

另一个注意事项:我尝试将我的构建gradle修改为接受的答案:如何更改Gradle中的libs目录?它不起作用.

在此输入图像描述

android zbar

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