我有一个基于PHP的应用程序正在运行。用户登录并执行一些操作。我有一个反向代理设置单独转发某些请求由mochiweb服务器处理 - 例如mysite.com/mochiweb的任何请求URL都会路由到mochiweb服务器。
现在,我的问题是如何使用PHP发布的会话信息对此请求进行身份验证?我只希望通过PHP前端登录的用户能够访问mochiweb webserver的服务。不应直接提供任何迷路请求。
答案 0 :(得分:1)
你可以让erlang服务器向php服务器发送带有所述会话cookie的http请求,并且如果会话有效,则让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}.