Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
app_push
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ikcrm_server
app_push
Commits
6f087082
Commit
6f087082
authored
May 12, 2020
by
梁宇哲
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hotfix/add_seq_num' into 'master'
add seq_num See merge request
!5
parents
aea41661
015be4f0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
21 deletions
+43
-21
app/controllers/concerns/token_validate.rb
+23
-4
app/controllers/pushs_controller.rb
+20
-17
No files found.
app/controllers/concerns/token_validate.rb
View file @
6f087082
...
...
@@ -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
app/controllers/pushs_controller.rb
View file @
6f087082
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment