Hi folks, The most commonly used HTTP authentication scheme is HTTP Basic authentication.
I want to add a basic auth plugin to apisix apache, It should have the following functions: 1. API for users to dynamically add and query basic authorization information. function _M.api() return { { methods = { "GET" }, uri = "/apisix/plugin/basic-auth/get", handler = get_auth, }, { methods = { "POST", "PUT" }, uri = "/apisix/plugin/basic-auth/set", handler = set_auth, } } end 2. Verify basic authrization during the access phase. function _M.access(conf, ctx) core.log.info("plugin access phase, conf: ", core.json.delay_encode(conf)) -- 0. check conf enable if not conf.enable then return end -- 1. extract username and password from basic_auth header local headers = ngx.req.get_headers() if not headers.Authorization then return 401, { message = "authorization is required" } end local username, password, err = extract_auth_header(headers.Authorization) if err then return 401, { message = err } end -- 2. get user info from etcd local res = authorizations_etcd:get(username) if res == nil then return 401, { message = "failed to find authorization from etcd" } end -- 3. check if user exists if not res.value or not res.value.id then return 401, { message = "user is not found" } end local value = res.value -- 4. check if password correct if value.password ~= password then return 401, { message = "password is error" } end end Can anyone give some advice? Is this is needed for your scenarios?