【问题标题】:if username and password combination are correct by checkin the google datastore如果通过签入谷歌数据存储用户名和密码组合正确
【发布时间】:2015-05-23 09:06:53
【问题描述】:

编辑:显然问题并不清楚所以...... 如何在数据存储中找到用户的密码,并检查它是否等于为方法提供的密码(如果有意义)。 编辑结束。

我有以下代码用于检查用户名是否存在,现在我只需要检查给定用户名的密码是否正确。

public boolean Login(String usernamein, String passwordin) {
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Filter usernamefilter = new FilterPredicate("username", FilterOperator.EQUAL, usernamein);
    Query validuserquery = new Query("Users").setFilter(usernamefilter).setKeysOnly();
        Entity theUser = datastore.prepare(validuserquery).asSingleEntity();
        System.out.println(usernamein);
        System.out.println(validuserquery);
        System.out.println(theUser);
        if(theUser == null) {
            System.out.println("Username not found");
            return false;
        }
        return true;
}

即使是伪代码,我也在努力弄清楚如何做到这一点,我对 GAE 和数据存储真的很陌生,但它适用于我的 A-Levels

我认为这个添加可以做到,但 theUser.getProperty("password") 为空其中应该为空

    if(theUser == null) {
        System.out.println("Username not found");
        return false;
    }
    System.out.println(theUser.getProperty("password"));
    if(passwordin.equals(theUser.getProperty("password"))){
        return true;
    }
return false;

如果有什么不明白的或者如果您需要更多信息,请告诉我,因为我确实需要帮助 :(

【问题讨论】:

  • 您有问题吗?

标签: java jsp google-app-engine google-cloud-datastore


【解决方案1】:

setKeysOnly 是我对单独 Q 的建议(你还没有接受我的 A,所以,咳咳,很奇怪看到你在这里使用它!)检查用户名是否存在。

这样您就不会获得任何属性。

删除它并且属性 在那里(在您的第一个 Q 中,您有一个投影,如果您的用户实体很大并且您只需要许多密码属性,这很好 - 但是这是一种优化,就像 setKeysOnly 一样,希望您知道规则 -- 先让它工作,然后让它快速!-)。

【讨论】:

    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 2017-07-31
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多