2020年3月23日 星期一

rails ruby簡訊認證 亂數創造方法+台灣手機正則表達

供二階段認證使用

Ruby亂數創造

rand(10..50) =>>產生10-50的整數亂數

  def random
    rand = rand(1000..9999)
    flash[:notice] = rand
  end

Ruby去除空格

.gsub(/\s+/, "") ==>刪除所有的空格
.gsub(/[^1234567890]/,"") ==>留下所有的數字+刪除所有空格

Ruby正則表達網站檢查

https://rubular.com/

台灣手機正則表達檢測

台灣手機號碼 /^09\d{2}-?\d{3}-?\d{3}$/
台灣手機號碼/^09\d{8}$/

要準備的model

devise Use
def User
   紀錄使用者的資料
   email
   password
   nickname
   phone
   active =>
end

def Message
    紀錄送出的訊息
    phone
    IP
    success? =>有發送成功嗎?
    timestamp
end

寄送OTP密碼簡訊

def send_msg
    進入前,檢查有沒有登入
    進入前,檢查發送IP有沒有超過限制(24小時內最多三通)
    進入時,檢查電話紀錄有沒有超過兩分鐘一通
    輸入時,檢查電話紀錄有沒有超過每日限制(24小時內最多三通)
    
    送出號碼
end

收簡訊並確認

def receive(code)
    檢查有沒有正確輸入檢查碼
    將手機紀錄在"已註冊手機"
end

更換手機號碼需要再檢查一次

def update_phone
    之前已經確認過得手機號碼,要換成新的手機號碼
    接收新的手機號碼
    
    檢查唯一性
    
end

PRIVATE

紀錄已發送的電話

def save_sended_phone
end

紀錄已發送IP

def save_sended_IP
end


沒有留言:

張貼留言

cloud9上面開發rails

 使用IAM身分登入,以免有資安問題。(用admin帳號登入,創建iam使用者,然後在上面的連結登入) 選擇 ubuntu18.04 減少查詢成本。 已經是超級使用者了,sudo 什麼都不需要輸入密碼了。 $ ruby -v  檢查 ruby使用的版本>>2.6.3,...