Welcome! Log In Create A New Profile

Advanced

Re: userid. привести содержимое переменной $uid_set в такой же вид, каким его получает браузер

March 12, 2015 12:26PM
Сам отвечу на свой вопрос, может кому пригодится.

Т.к. Lua весьма беден на функции, которые необходимы в этом деле, то можно использовать математические и строковые функции + API самого nginx. В итоге выходит что то вроде:

server {

listen 80;

userid on;

location / {
proxy_pass http://172.17.42.1:9292;
proxy_set_header X-Uid-Got $uid_got;
proxy_set_header X-Uid-Set $uid_set;

set $user_cookie $http_cookie;

if ($uid_set) {
set_by_lua $user_cookie '
function encode_cookie(cookie)
local binary_string = ""
for i=5,35,8 do
local chunk = tonumber(string.sub(cookie, i, i+7), 16)

for j=1,4 do
binary_string = binary_string .. string.char(chunk % 256)
chunk = math.floor(chunk / 256)
end
end

return ngx.encode_base64(binary_string)
end

if ngx.var.http_cookie == nil then
return encode_cookie(ngx.var.uid_set)
else
return ngx.var.http_cookie .. ";" .. encode_cookie(ngx.var.uid_set)
end
';
}

proxy_set_header Cookie $user_cookie;
}

}

11.03.2015, 19:48, "Den Bozhok" <undying-m@yandex.ru>:
> Доброго дня!
>
> Возник вопрос, можно ли внутри nginx, имея значение $uid_set получить ее представление в Base64, каким его видит бразуер получая заголовок Set-Cookie?
>
> Есть необходимость передавать этот uid при проксировании первого запроса пользователя, когда еще никакой куки у пользователя нету.
> Пробовал с помощью lua модуля, но так ничего и не вышло :/
>
> Благодарю!
> ,
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

userid. привести содержимое переменной $uid_set в такой же вид, каким его получает браузер

kron March 11, 2015 12:50PM

Re: userid. привести содержимое переменной $uid_set в такой же вид, каким его получает браузер

kron March 12, 2015 12:26PM

Re: userid. привести содержимое переменной $uid_set в такой же вид, каким его получает браузер

Konstantin Tokarev March 12, 2015 12:36PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 142
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready