回上一頁

Rails API Only Step1

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先到這。