我試圖在我的服務器上創建一個只允許用戶進入頁面的關鍵系統,如果他們輸入了有效的密鑰作爲GET參數的話。如果密鑰無效或者沒有輸入密鑰,它們將被重定向到下面的「無效密鑰」頁面。一個人輸入密鑰後,Python瓶密鑰驗證系統不起作用?
@route('/test/invalidkey')#key is invalid!
def index():
return "Sorry, your API key is invalid! Message the admin if this is a problem."
在所有的路線上,有一個apply=[require_key]
參數。
@route('/test/count', method='GET', apply=[require_key])
這裏是require_key方法:
def require_key(fn):#check if api key is valid
if not request.query.key:
redirect('/test/invalidkey')
return fn
現在沒有API密鑰。目前,我只是檢查是否有添加到網址的?key = hey參數。
我的問題是:每當有人第一次嘗試訪問沒有api鍵的頁面時,它會重定向到無效的鍵頁面,就像它應該的那樣。當有人第一次使用鑰匙進行訪問時,他們會按照應有的方式進行操作。但是......當某人在訪問頁面後沒有使用關鍵參數訪問頁面時,已經使用關鍵參數進行訪問,他們甚至可以在不需要密鑰GET參數的情況下訪問該頁面。爲什麼會發生?
如果即使有一個人使用密鑰訪問它,也允許任何人在沒有密鑰的情況下訪問它。這個關鍵的GET參數是否每次都被存儲和引用?如果是這樣,我該如何清除它?
我已經閱讀了瓶子文檔,但是隻有一小段文字解釋了應用參數以及它的作用。這並沒有涉及任何高級細節。