示例#1
0
def _login_user(request, user):
    if not user.is_active:
        raise ParseError(u'你的账户有异常,请联系客服%s' % '正午')
    django_login(request, user)
    limit = 5  # 如果没有session_key尝试写入5次
    while not request.session.session_key:
        LOG.warn('session is empty, try=%d', limit)
        for k, v in request.session.iteritems():
            LOG.warn('%s = %s', k, v)
        django_logout(request)
        django_login(request, user)
        if not request.session.get('has_session'):
            request.session['has_session'] = True
        limit -= 1
        if limit < 0:
            break
    user.session_key = request.session.session_key
    user.save()
    return UserSerializer(user).data