Python瓶密钥认证系统在一个人输入密钥后不工作?

2024-09-30 06:25:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我的服务器上创建一个密钥系统,该系统只允许用户在输入有效密钥作为GET参数时进入页面。如果密钥无效或没有输入密钥,它们将被重定向到如下所示的“无效密钥”页面。你知道吗

@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\u key方法:

def require_key(fn):#check if api key is valid
    if not request.query.key:
        redirect('/test/invalidkey')
    return fn

现在没有API密钥。目前,我只是想看看有没有什么问题?key=hey参数添加到url。你知道吗

我的问题是:每当有人第一次尝试在没有api键的情况下访问页面时,它就会像预期的那样重定向到无效键页面。当有人第一次用钥匙进入时,他们会像预期的那样进行。但是。。。当有人在已经使用key paramater访问了页面之后,在没有key参数的情况下访问该页面时,他们甚至不需要key GET参数就可以访问该页面。为什么会这样?你知道吗

即使有一个人用钥匙访问它,任何没有钥匙访问它的人都是被允许的。这个key GET参数是否每次都被存储和引用?如果是这样,我该如何清除它?你知道吗

我已经阅读了瓶子文档,但是只有一小部分文本解释apply参数及其作用。这不涉及任何高级细节。你知道吗


Tags: keytest参数getifis系统密钥
1条回答
网友
1楼 · 发布于 2024-09-30 06:25:08

我用这家伙的博客找到了解决办法。你得用回程机才能进入。你知道吗

http://tumblr.kurttheviking.com/post/13053496552/using-decorators-to-require-sign-in-with-bottle-py

require\u key方法应该更像这样:

def require_uid(fn):
    def check_uid(**kwargs):   
        cookie_uid = request.get_cookie('cookieName', secret='cookieSignature')

        if cookie_uid:
            //do stuff with a user object
            return fn(**kwargs)
        else:
            redirect("/loginagain")

    return check_uid

相关问题 更多 >

    热门问题