keystone.auth.plugins.token 模块

class keystone.auth.plugins.token.Token[source]

基类: AuthMethodHandler

authenticate(auth_payload)[source]

验证用户并返回身份验证上下文。

参数:

auth_payload (dict) – 给定方法身份验证请求的有效载荷内容

如果成功,插件必须在 response_data 中设置 user_idmethod_name 用于传递任何额外的身份验证方法,以防身份验证用于重新限定范围。 例如,如果身份验证用于重新限定范围,插件必须将之前的 method name 追加到 method_names 中;注意:此行为仅适用于重新限定范围类型的操作。 以下是成功身份验证时 response_data 的示例

{"methods": ["password", "token"], "user_id": "abc123"}

插件的调用顺序与 identity 对象的 methods 属性中指定的顺序相同。 例如,custom-plugin 在以下身份验证请求中,先于 password 调用,而 password 又先于 token 调用

{
    "auth": {
        "identity": {
            "custom-plugin": {"custom-data": "sdfdfsfsfsdfsf"},
            "methods": ["custom-plugin", "password", "token"],
            "password": {
                "user": {"id": "s23sfad1", "password": "secret"}
            },
            "token": {"id": "sdfafasdfsfasfasdfds"},
        }
    }
}
返回值:

如果身份验证成功,AuthHandlerResponse 的 status 设置为 True。 如果 statusFalse 并且是多步身份验证,则 response_body 可以采用字典形式,用于身份验证的下一步。

引发:

keystone.exception.Unauthorized – 身份验证失败

keystone.auth.plugins.token.token_authenticate(token: TokenModel) dict[str, Any][source]