api開發是現今很常見的一種軟體開發方式,
因應各式各樣的api需求,
幫助不同專案的軟體開發創意與創造。
Rails提供一個僅api的輕量專案, 建立專案時,後面加 --api
rails new my_api --api
當然不用api模式也行,我這篇是以輕量型為主。
首先登入機制是很重要且基礎的功能,
以下使用Rails devise認證,
提供給前台做登入使用。
1.我們需要設計好routes:
名稱當然可以自己定義,
我是習慣用v1代表版本,
可以延伸更新改變。
建立一個devise user model,
在model裡面寫一條:
has_secure_token :auth_token
並建立 auth_token 欄位
輸入建立欄位的指令,指令自己查,不寫在這XD
欄位:
add_column :users, :auth_token, :string
add_index :users, :auth_token, unique: true
Controller:
建立一個 api_controller:
撰寫 authenticate_user_token action
用來讓前端取得User。
登入登出則寫在:
Api::V1::SessionController 裡面
#...
這裡基本上取得下面驗證User action
進行登入,登出則把 auth_token clear。
private
def valid_user?
@user = User.find_by(email: params[:email])
return false if @user.blank?
@user.valid_password?(params[:password])
end
這個功能還有可以延伸的地方,
目前這是基礎建設,
讓前後端可以進行開發登入的方式,
後續可以繼續研究
gem "jwt" 等計算token期限等延伸技巧。
以上Step1先到這。