Manipulação de sessões de usuário com Mochiweb
Pergunta
Eu tenho um aplicativo em execução com base PHP. O usuário logins, e faz algumas ações. Eu tenho um proxy reverso configurado para encaminhar certos pedidos só sejam manuseadas pelo servidor mochiweb - por exemplo, qualquer URL de solicitação com mysite.com/mochiweb é roteado para o servidor mochiweb.
Agora, a minha pergunta é como faço para autenticar este pedido usando as informações da sessão entregue por PHP? Quero apenas os usuários que tenham acessado via o front-end PHP para ser capaz de acessar os serviços do servidor mochiweb. Quaisquer pedidos vadios diretamente não deve ser servido.
Solução
você poderia ter o servidor erlang enviar uma solicitação HTTP com o dito cookie de sessão para o servidor php e ter o retorno do servidor php se a sessão é válida ou não. por exemplo, aqui é como eu verificada site através 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}.