最近的 rails 專案裡需要 HTTP basic authentication,實作起來很容易,底下讓我們看範例:
在你想要進行身分驗證的 controller 端利用 http_basic_authenticate_with
,底下實現在 ApplicationController 裡的話會是全站套用
class ApplicationController < ActionController::Base
http_basic_authenticate_with :name => "user", :password => "password"
end
倘若只是想在某個 controller 裡實現,比如 ProductsController
class ProductsController < ApplicationController
http_basic_authenticate_with name: "admin", password: "hunter2"
end
我們可以使用基本的 Net::HTTP::Post
完成發送的任務,詳見底下的示範。
您可以在 request.basic_auth
裡添加身分驗證時所需要的使用者名稱與密碼,利用 content_type
指定傳送的資料格式,比如 json,然後於 body 裡添加傳輸的資料,為了資料安全性走 https 通道,最後以 Net::HTTP.start
建立連線並且執行發送。
uri = URI.parse("https://somewebsite.com/api/subscribers")
request = Net::HTTP::Post.new(uri)
request.basic_auth("someuser", "1stAKPe0lWxAdKn")
request.content_type = "application/json"
request.body = JSON.dump({
"email" => params[:email],
"name" => params[:name],
"status" => "enabled",
})
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
© Copyrights 從想像到創造. All Rights Reserved.