Flaskはユーザのipを取得し,ユーザのログイン回数を照会し,ipを閉じる.

4185 ワード

  • ユーザipの登録回数(LOGIN_ERROR_MAX_TIMES==5)を取得しようと試みる、redisから
    	#             ,       ,    
    	    # redis  : "access_num_   ip":"  "
    	    #      ip
    	    user_ip = request.remote_addr
    	
    	    try:
    	        # redis      string          ,       string  
    	        access_num = redis_store.get("access_num_%s" % user_ip)
    	    except Exception as e:
    	        current_app.logger.error(e)
    	    else:
    	        #     5 ,     ip
    	        if access_num is not None and int(access_num) >= LOGIN_ERROR_MAX_TIMES:
    	            return jsonify(errnum=RET.REQERR, errmsg=u"      ,      ")
    
  • を取得する.
  • redisキャッシュ(キャッシュ時間LOGIN_ERROR_FOrBID_TIME)
    	#                           
    	    if user is None or user.check_password(password):
    	        #       ,       ,     
    	        try:
    	            # incr               1
    	            redis_store.incr("access_num_%s" % user_ip)
    	            redis_store.expire("access_num_%s" % user_ip, LOGIN_ERROR_FORBID_TIME)
    	        except Exception as e:
    	            current_app.login.error(e)
    	
    	        return jsonify(errnum=RET.DATAERR, errmsg=u"        ")
    
  • を設定.