metamaps--metamaps/app/models/token.rb
2016-09-24 11:00:46 +08:00

22 lines
368 B
Ruby

# frozen_string_literal: true
class Token < ApplicationRecord
belongs_to :user
before_create :assign_token
CHARS = 32
private
def assign_token
self.token = generate_token
end
def generate_token
loop do
candidate = SecureRandom.base64(CHARS).gsub(/\W/, '')
return candidate[0...CHARS] if candidate.size >= CHARS
end
end
end