Commit 6f087082 by 梁宇哲

Merge branch 'hotfix/add_seq_num' into 'master'

add seq_num

See merge request !5
parents aea41661 015be4f0
......@@ -10,10 +10,20 @@ module TokenValidate
$redis.ttl(tkey(app_name))
end
def generate_token(app_name)
token = SecureRandom.hex(32)
$redis.set(tkey(app_name), token, ex: ACCESS_TOEKN_EXPIRE_TIME)
token
def generate_token(sequence_number, app_name)
sequence_number = sequence_number.to_f
if sequence_number > get_sequence_number(app_name).to_f
$redis.set(sequence_number_key(app_name), sequence_number, ex: ACCESS_TOEKN_EXPIRE_TIME)
token = SecureRandom.hex(32)
$redis.set(tkey(app_name), token, ex: ACCESS_TOEKN_EXPIRE_TIME)
[sequence_number , token]
else
[get_sequence_number(app_name).to_f, get_token(app_name)]
end
end
private
......@@ -21,9 +31,17 @@ module TokenValidate
def tkey(app_name)
"push:api:#{app_name}:access_token"
end
def sequence_number_key(app_name)
"push:api:#{app_name}:sequence_number"
end
def get_token(app_name)
$redis.get(tkey(app_name))
end
def get_sequence_number(app_name)
$redis.get(sequence_number_key(app_name))
end
end
\ No newline at end of file
......@@ -5,10 +5,13 @@ class PushsController < ApplicationController
param! :app_name, String, required: true
param! :app_id, String, required: true
param! :app_secret, String, required: true
param! :sequence_number, Float, required: true
app_setting = Settings.send(params[:app_name].to_sym) rescue {}
if app_setting['app_id'] == params[:app_id] && app_setting['app_secret'] == params[:app_secret]
render json: { code: 0, message: 'success', token: generate_token(params[:app_name]), ttl: token_ttl(params[:app_name])}
sequence_number , token = generate_token(params[:sequence_number], params[:app_name])
render json: { code: 0, message: 'success', sequence_number: sequence_number, token: token, ttl: token_ttl(params[:app_name])}
else
render json: { code: -1, message: '应用不存在或者app_id/app_secret不匹配'}
end
......@@ -34,19 +37,19 @@ class PushsController < ApplicationController
return render json: { code: -1, message: 'user_device找不到,user_ids错误'}
end
# token_array = token_and_options(request)
# if token_array.blank?
# return render json: { code: 401, message: 'token错误'}
# end
token_array = token_and_options(request)
if token_array.blank?
return render json: { code: 401, message: 'token错误'}
end
params[:sync_push] ||= false
# if validate_token(params[:app_name], token_array.first)
if validate_token(params[:app_name], token_array.first)
push_sync(params[:sync_push], {user_ids: user_ids, message: message, igetui_opts: igetui_opts.merge(pusher_type: 'push_message_to_list')})
render json: { code: 0, message: 'success', describe: '异步任务正在处理'}
# else
# render json: { code: 401, message: 'token 错误/过期'}
# end
else
render json: { code: 401, message: 'token 错误/过期'}
end
end
......@@ -74,12 +77,12 @@ class PushsController < ApplicationController
message = JSON.parse(params[:message]) rescue {}
device_ids_opts = JSON.parse(params[:device_ids_opts]) rescue {}
# token_array = token_and_options(request)
# if token_array.blank?
# return render json: { code: 401, message: 'token错误'}
# end
token_array = token_and_options(request)
if token_array.blank?
return render json: { code: 401, message: 'token错误'}
end
# if validate_token(params[:app_name], token_array.first)
if validate_token(params[:app_name], token_array.first)
params[:sync_push] ||= false
push_sync(params[:sync_push], {device_ids_opts: device_ids_opts, message: message, app_type: params[:app_type], igetui_opts: igetui_opts.merge(pusher_type: 'push_message_to_list')})
......@@ -87,9 +90,9 @@ class PushsController < ApplicationController
render json: { code: 0, message: 'success', data: {remind: "请使用新的api,此api近期将不再维护,请尽快迁移到新的api,新api地址 http://apidoc.weiwenjia.com/docs/internal-dev-api/internal-dev-api-1boq6ctdm8m57"}}
# else
# render json: { code: 401, message: 'token 错误/过期'}
# end
else
render json: { code: 401, message: 'token 错误/过期'}
end
end
private
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment