2011-08-01 2 views
1

나는 작은 애플리케이션을 가지고 있으며, 나머지 애플리케이션은 http를 통해이 서비스에 데이터를 저장한다. 이미 인증을받지 않고 작동합니다. 포털에서 나는 궁리를 사용하고, 나의 질문은 : 어떻게 (예를 들어) 루비 스크립트 수준에서 포털을 인증하고 싶습니까? 먼저 인증을 위해 다음 스크립트에 추가 할 항목은 무엇입니까? 내가이 장치를 보호하고 싶다. 그러면 다음 스크립트에 인증 부분이 필요하다.루비 스크립트를 통해 인증을 바꾼다

내가 유증에서 token_authenticatable 사용 :

require "net/http" 
require "json" 

@host = "localhost" 
@port = 3000 
@post_ws = "/external/rd" 

@req_body = { 
"device" => { 
    "name" => "device_json", 
    "operating_system_id" => "7", 
    "hash_string" => "jfsg3k4ovj0j02jv", 
    "user_id" => "1" 
} 
}.to_json 

req = Net::HTTP::Post.new(@post_ws, initheader = {'Content-Type' =>'application/json'}) 
req.body = @req_body 
response = Net::HTTP.new(@host, @port).start {|http| http.request(req) } 

감사합니다, 마테우스

+0

, 스크립트 토큰, 그래서 여전히 해결책을 구하는 방법 / – Mateusz

답변

4

여기에 솔루션입니다.

Here은 json으로 구현하는 방법 중 하나입니다. 나는 약간 문제가 있고 그 (것)들을 in this question 기술했다. 대답도 있습니다. 여기

이 예제 코드 진행됩니다

require "net/http" 
require "json" 

@host = "localhost" 
@port = 3000 
@post_sign = "https://stackoverflow.com/users/sign_in.json" 
@post_ws = "/external/rd" 

@req_sign = { 
"user" => { 
    "email" => "[email protected]", 
    "password" => "123456" 
} 
}.to_json 

sig = Net::HTTP::Post.new(@post_sign, initheader = {'Content-Type' => 'application/json'}) 
sig.body = @req_sign 


http = Net::HTTP.new(@host, @port).start 
resp1 = http.request(sig) 
puts "Response: #{resp1.code} , Message: #{resp1.message} , Body: #{resp1.body}" 

if resp1.code == "200" then 
    puts "logged in" 
    json_resp = JSON.parse(resp1.body) 
    @auth_token = json_resp['auth_token'] 

    @req_body = { 
    "device" => { 
    "name" => "device_json", 
    "operating_system_id" => "7", 
    "hash_string" => "jfsg3k4ovj0j02jv" 
    }, 
    "auth_token" => @auth_token 
    }.to_json 
    req = Net::HTTP::Post.new(@post_ws, initheader = {'Content-Type' =>'application/json'}) 
    req.body = @req_body 

    response = http.request(req) 
    puts "Response: #{response.code} , Message: #{response.message} , Body: #{response.body}" 
end 

안부, 마테우스을

내가 token_authenticatable 도움이 될 볼 수 있지만, 지금까지 모르는
관련 문제