我正在为带有rails的Android应用编写api。由于我是rails和android的新手,我无法想出access_token的东西。
我有一个令牌模型,每次用户登录时,新的access_token将被添加到令牌表中。我的问题是,如果我在创建令牌后设置了过期日期== 3天,当用户发送带有access_token的请求时,验证这一点的正确方法是什么?如何删除那些过期的令牌?
这是我的令牌模型:
# Table name: tokens
#
# id :integer not null, primary key
# access_token :string(255)
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
class Token < ActiveRecord::Base
attr_accessible :access_token, :user_id
before_validation :generate_access_token
belongs_to :user
validates :access_token, presence: true, uniqueness: true
validates :user_id, presence: true, uniqueness: true
private
def generate_access_token
begin
self.access_token = SecureRandom.hex
end while self.class.exists?(access_token: access_token)
end
end
答案 0 :(得分:0)
您可以在令牌模型中添加expires_at
列来处理它。您还需要一种检索新令牌的方法,该令牌可以更新现有令牌的密钥和过期,也可以为用户生成新的令牌记录并返回该记录。后者更像是Facebook为其访问令牌所采用的方法。