Quantcast
Channel: DLE FAQ - максимум информации по DataLife Engine
Viewing all articles
Browse latest Browse all 9586

Как организовать авторизацию стриминг сервера и DLE?

$
0
0
Здравствуйте, возникла проблема по организации общей авторизации стриминг сервера и DLE. Цель организовать авторизацию потоковой трансляции по авторизации с базы данных DLE.
На сервере стоит стример Astra с него идет онлайн трансляции такого вида http://адрес-сервера:порт/идентификатор-канала?login=user&pass=12345 нужно сделать так что бы при начале просмотра стример сверил логин и пароль на наличия такого в базе сайта если отсутствует то трансляция не идет, а если есть то транслировать.
От разработчика получил скрипт LUA для стримера на подобную организацию авторизации но теперь нужно поковырять DLE.
Так как моих знаний в этой области мало прошу помощи в решении задачи может кому будет интересно что то не обычное.
Прикрепляю код скрипта для стримера если нужен доступ к сайту и стримеру для тестирования пишем в ЛС
site_url = parse_url("http://127.0.0.1/login/")
error_stream = "/error"

function escape(s)
    return string.gsub(s, "([^A-Za-z0-9_])", function(c)
        return string.format("%%%02x", string.byte(c))
    end)
end

function auth_request(client_id, request, callback)
    if not request then
        return nil
    end

    local login = request.query["login"] or ""
    local pass = request.query["pass"] or ""
    if login == "" or pass == "" then
        request.path = error_stream
        callback(true)
        return nil
    end

    local content = "login=" .. escape(login) .. "&pass=" .. escape(pass)

    http_request({
        method = "POST",
        host = site_url.host,
        port = site_url.port,
        path = site_url.path,
        headers = {
            "User-Agent: Astra",
            "Host: " .. site_url.host .. ":" .. site_url.port,
            "Content-Type: application/x-www-form-urlencoded",
            "Content-Length: " .. #content,
            "Connection: close",
        },
        content = content,
        callback = function(_, response)
            if response.code == 200 then
                log.info("ip:" .. request.addr .. " login:" .. login)
            else
                request.path = error_stream
            end
            callback(true)
        end,
    })
end

Viewing all articles
Browse latest Browse all 9586

Trending Articles