1
我运行一个GQLQuery查找,如果用户输入正确的凭据:GQLQuery检索空结果集
class User(db.Model):
UserName = db.TextProperty();
Password = db.TextProperty();
Ticket = db.TextProperty();
class Authentication(webapp.RequestHandler):
def post(self):
str_user = self.request.get('user')
str_password = self.request.get('password')
user = db.GqlQuery("SELECT * FROM User WHERE UserName = :1 AND Password = :2",str_user, str_password)
self.response.out.write(str_user)
self.response.out.write(str_password)
self.response.out.write(str([u.UserName for u in user]))
if user.count() > 0:
ticket = str(uuid.uuid4())
user.Ticket = ticket
self.response.out.write(ticket)
else:
self.response.out.write('Not authorized!')
查询总是返回一个空的结果集(与“WHERE” -clause)虽然我我确定我已经通过了正确的参数。
我试着连接我自己的查询字符串,但结果保持不变。如果我删除了“WHERE”条款,我得到了数据库的所有用户,所以我猜数据库连接没问题。
我希望你不要在数据存储中以明文存储用户密码。 –
借调。如果可能,您应该使用联合登录或Google帐户身份验证。如果您必须存储用户凭据,请对用户的密码进行散列处理。 –
不要只是散列它 - 使用像PBKDF2这样的方法。仅靠散布是不够的。 –