Exemplo n.º 1
0
def user_register(request):
    """
    用户注册
    :param request:
    :return:
    """
    if not verifyTheText(request):
        return msg(3)  #验证码错误
    password1 = request.POST.get('password1', '')  # 得到密码1
    password2 = request.POST.get('password2', '')  # 得到密码2
    username = request.POST.get('username', '')  # 得到用户名
    if user_name_is_used(username):
        return msg(5)  # 用户名已存在
    if password1 != password2:
        return msg(4)  # 两次密码不匹配
    u = User(userName=username, password=password1)
    u.save()  # 生成一个user对象
    # u 没有save()之前是没有userID的, save()之后就是一个完整的user对象了
    user_add_to_session(request, u)
    return msg(0)  # 注册成功
Exemplo n.º 2
0
def user_login(request):
    """
    用户登录流程,验证用户名和密码,验证码,是否保存登录信息,登录成功后把用户身份添加到session
    :param request: 这个request里面有post过来的数据
    :return:返回一个字典,代表登录状态,状态说明在msg函数里
    """
    if not verifyTheText(request):
        return msg(3)
    userName = request.POST.get("username", '')  # 获得表单中的用户名
    password = request.POST.get("password", '')  # 获得表单中的密码

    ifSave = request.POST.get("ifsave")  # u'true' or u'false'
    u = None
    try:
        u = User.objects.get(userName=userName)
    except:
        pass
    if not u:
        return msg(1)
    if u.password != password:
        return msg(2)
    if ifSave == "true":
        request.session.set_expiry(3600 * 24 * 30)
        # 默认是1800秒,选择了保存登录信息,则保存一个月
        # 你可以传递四种不同的值给它:
        # * 如果value是个整数,session会在这些秒数后失效(适用于整个Django框架,即这个数值时效时整个页面都会session失效)。
        # * 如果value是个datatime或timedelta,session就会在这个时间后失效。
        # * 如果value是0,用户关闭浏览器session就会失效。
        # * 如果value是None,session会依赖全局session失效策略。
        # response.set_cookie("userName", u.userName)
        # 如果保存信息就存到cookie里,只存用户名,可以使用这个来识别是哪个用户,但是要操作个人信息还是要从新登陆的
    else:
        request.session.set_expiry(0)
        # 没选择保存登录信息,关闭浏览器就失效,下次访问需要重新登录
        # response.delete_cookie("userName")
        # 如果不保存信息就从cookie里删除用户名
        # response.set_cookie("password", user.password, expires=dt)

    user_add_to_session(request, u)
    u.save()  # 保存一下可以更新登录时间
    return msg(0)