Обработка пользовательских сессий с Mochiweb

StackOverflow https://stackoverflow.com/questions/1002479

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня запущено приложение на основе PHP. Пользователь входит в систему и выполняет некоторые действия. У меня есть обратный прокси-сервер, настроенный для пересылки некоторых запросов в одиночку на сервер mochiweb, например любой URL-адрес запроса с mysite.com/mochiweb направляется на сервер mochiweb.

Теперь мой вопрос: как я могу аутентифицировать этот запрос, используя информацию о сеансе, передаваемую PHP? Я хочу, чтобы только пользователи, которые вошли в систему через интерфейс PHP, имели доступ к службам веб-сервера mochiweb. Любые случайные запросы напрямую не должны обслуживаться.

Это было полезно?

Решение

вы можете попросить сервер erlang отправить http-запрос с указанным cookie-файлом сеанса на php-сервер и вернуть php-сервер, если сеанс действителен или нет. например, вот как я проверил сайт через recaptcha

-module(ed_recaptcha).

-license("GPL3").

-export([verify/4]).

-define(RECAPTCHA_URL, "http://api-verify.recaptcha.net/verify").

verify(Private_Key, Remote_Ip, Challenge, Response) ->
    Body = list_to_binary(
             io_lib:format(
               "privatekey=~s&challenge=~s&response=~s&remoteip=~s",
               [Private_Key, Challenge, Response, Remote_Ip])),
    case http:request(post, {?RECAPTCHA_URL,
                             [], "application/x-www-form-urlencoded",
                             Body},
                      [{timeout, 30000}, {sync, false}],
                      []) of
        {ok, {_Status_line, _Headers, Response_Body}} ->
            verify_response(Response_Body)
    end.

verify_response("false\nincorrect-captcha-sol") ->
    {error, robot};
verify_response("false\ninvalid-request-cookie") ->
    {error, robot};
verify_response("true\nsuccess") ->
    {ok, not_robot}. 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top