Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rails如何将带有http身份验证的http请求发送到php文件_Php_Ruby On Rails_Http Authentication - Fatal编程技术网

rails如何将带有http身份验证的http请求发送到php文件

rails如何将带有http身份验证的http请求发送到php文件,php,ruby-on-rails,http-authentication,Php,Ruby On Rails,Http Authentication,我有一个php文件test.php,它创建了HTTP Auth $valid_passwords = array ("test" => "test123"); $valid_users = array_keys($valid_passwords); $user = $_SERVER['PHP_AUTH_USER']; $pass = $_SERVER['PHP_AUTH_PW']; $validated = (in_arr

我有一个php文件test.php,它创建了HTTP Auth

$valid_passwords = array ("test" => "test123");
        $valid_users = array_keys($valid_passwords);

        $user = $_SERVER['PHP_AUTH_USER'];
        $pass = $_SERVER['PHP_AUTH_PW'];

        $validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);

        if (!$validated) {
          header('WWW-Authenticate: Basic realm="My Realm"');
          header('HTTP/1.0 401 Unauthorized');
          die ("Not authorized");
        }

        // If arrives here, is a valid user.
        echo "<p>Welcome $user.</p>";
        echo "<p>Congratulation, you are into the system.</p>";
            }
“这不起作用,”他说。 我可以在PHP和Rails中进行更改,我只需要一种安全的方式在两者之间进行http请求。

这很有效

url = 'http://url'
        uri = URI.parse(url)
        http = Net::HTTP.new(uri.host, uri.port)
        request = Net::HTTP::Get.new(uri.path, 'Content Type' => 'application/json')
        request.basic_auth("test", "test123")
        response = http.request(request)
        render :text => response.body
多亏了MarcB,这一切都成功了

url = 'http://url'
        uri = URI.parse(url)
        http = Net::HTTP.new(uri.host, uri.port)
        request = Net::HTTP::Get.new(uri.path, 'Content Type' => 'application/json')
        request.basic_auth("test", "test123")
        response = http.request(request)
        render :text => response.body

多亏了MarcB

你说它不起作用是什么意思?细节!用户名中可以有空格。rails如何知道您正在传递
“用户密码”
?请尝试
request.basic\u auth(“test”,“test123”)
。@Kenneth,它说unauthorized,@MarcB它给了我错误:没有将字符串隐式转换为整数,我这样做:
response=http.request(request.basic\u auth(“test”,“test123”))render:text=>response.body
嘿,成功了!我弄错了……你说它不起作用是什么意思?细节!用户名中可以有空格。rails如何知道您正在传递
“用户密码”
?请尝试
request.basic\u auth(“test”,“test123”)
。@Kenneth,它说unauthorized,@MarcB它给了我错误:没有将字符串隐式转换为整数,我这样做:
response=http.request(request.basic\u auth(“test”,“test123”))render:text=>response.body
嘿,成功了!我错了。。