【问题标题】:Handling user sessions with Mochiweb使用 Mochiweb 处理用户会话
【发布时间】:2010-11-03 09:37:31
【问题描述】:

我有一个基于 PHP 的应用程序正在运行。用户登录并执行一些操作。我设置了一个反向代理来单独转发某些请求以由 mochiweb 服务器处理 - 例如任何带有 mysite.com/mochiweb 的请求 URL 都会被路由到 mochiweb 服务器。

现在,我的问题是如何使用 PHP 发出的会话信息来验证这个请求?我只希望通过 PHP 前端登录的用户能够访问 mochiweb 网络服务器的服务。不应直接处理任何杂散请求。

【问题讨论】:

    标签: session erlang


    【解决方案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}. 
    

    【讨论】:

      猜你喜欢
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2015-11-10
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多