Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
U
unify_api2
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chaonan
unify_api2
Commits
0604c99b
Commit
0604c99b
authored
Jun 17, 2024
by
ZZH
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add translate 2024-06-17
parent
2d637a1f
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
25 deletions
+62
-25
constants.py
unify_api/constants.py
+18
-0
multi_lang.py
unify_api/modules/common/procedures/multi_lang.py
+5
-1
login_pds.py
unify_api/modules/users/procedures/login_pds.py
+27
-20
auth.py
unify_api/modules/users/views/auth.py
+7
-3
current_user_info.py
unify_api/modules/users/views/current_user_info.py
+5
-1
No files found.
unify_api/constants.py
View file @
0604c99b
...
@@ -746,3 +746,21 @@ PHASE_LINE_LANG = {
...
@@ -746,3 +746,21 @@ PHASE_LINE_LANG = {
"de_DE"
:
"Elektrizität"
"de_DE"
:
"Elektrizität"
},
},
}
}
LOG_IN_TIPS
=
{
"err_uname_pwd"
:
{
"zh_CN"
:
"用户名或密码错误"
,
"en_US"
:
"Username or password is incorrect"
,
"de_DE"
:
"Benutzername oder Passwort falsch"
},
"err_vfy_code"
:
{
"zh_CN"
:
"验证码错误"
,
"en_US"
:
"Verification code is incorrect"
,
"de_DE"
:
"Diese Telefonnummer is bereits verknüpft"
},
"phone_bound"
:
{
"zh_CN"
:
"该手机号已被绑定"
,
"en_US"
:
"This phone number has already been bound"
,
"de_DE"
:
""
},
}
unify_api/modules/common/procedures/multi_lang.py
View file @
0604c99b
...
@@ -5,7 +5,7 @@ DATE:2024/5/30 11:34
...
@@ -5,7 +5,7 @@ DATE:2024/5/30 11:34
"""
"""
from
pot_libs.logger
import
log
from
pot_libs.logger
import
log
from
unify_api.constants
import
(
from
unify_api.constants
import
(
E_TYPE_MSG_LANG
,
PHASE_LINE_LANG
,
E_TYPE_NAME_LANG
E_TYPE_MSG_LANG
,
PHASE_LINE_LANG
,
E_TYPE_NAME_LANG
,
LOG_IN_TIPS
)
)
...
@@ -41,3 +41,7 @@ def load_phase_line(mtr_name, lang):
...
@@ -41,3 +41,7 @@ def load_phase_line(mtr_name, lang):
def
load_e_type_name
(
e_type
,
lang
=
"zh_CN"
):
def
load_e_type_name
(
e_type
,
lang
=
"zh_CN"
):
return
E_TYPE_NAME_LANG
.
get
(
e_type
,
{})
.
get
(
lang
,
""
)
return
E_TYPE_NAME_LANG
.
get
(
e_type
,
{})
.
get
(
lang
,
""
)
def
load_login_tips
(
err_type
,
lang
=
"zh_CN"
):
return
LOG_IN_TIPS
.
get
(
err_type
,
{})
.
get
(
lang
,
""
)
unify_api/modules/users/procedures/login_pds.py
View file @
0604c99b
...
@@ -8,6 +8,7 @@ from pot_libs.logger import log
...
@@ -8,6 +8,7 @@ from pot_libs.logger import log
from
unify_api.modules.common.dao.common_dao
import
user_by_phone_number
from
unify_api.modules.common.dao.common_dao
import
user_by_phone_number
from
pot_libs.settings
import
SETTING
from
pot_libs.settings
import
SETTING
from
unify_api.modules.users.procedures.jwt_user
import
auth_phone_verify
from
unify_api.modules.users.procedures.jwt_user
import
auth_phone_verify
from
unify_api.modules.common.procedures.multi_lang
import
load_login_tips
async
def
wechat_login
(
args
,
host
):
async
def
wechat_login
(
args
,
host
):
...
@@ -100,13 +101,16 @@ async def web_login(args, host):
...
@@ -100,13 +101,16 @@ async def web_login(args, host):
return
401
,
{
"code"
:
401
,
"data"
:
None
,
"message"
:
str
(
e
)}
return
401
,
{
"code"
:
401
,
"data"
:
None
,
"message"
:
str
(
e
)}
async
def
third_login
(
args
,
host
):
async
def
third_login
(
args
,
host
,
lang
):
"""第三方接口用户名密码登录"""
"""第三方接口用户名密码登录"""
user_name
=
args
.
get
(
"user_name"
)
user_name
=
args
.
get
(
"user_name"
)
password
=
args
.
get
(
"password"
)
password
=
args
.
get
(
"password"
)
err_uname_pwd_tip
=
load_login_tips
(
"err_uname_pwd"
,
lang
)
# 1. 对参数校验
# 1. 对参数校验
if
not
all
([
user_name
,
password
]):
if
not
all
([
user_name
,
password
]):
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"用户名或密码错误"
}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
err_uname_pwd_tip
}
# 1. 准备转发给auth服务的参数
# 1. 准备转发给auth服务的参数
request_body
=
{
request_body
=
{
"phone"
:
user_name
,
"phone"
:
user_name
,
...
@@ -132,20 +136,23 @@ async def third_login(args, host):
...
@@ -132,20 +136,23 @@ async def third_login(args, host):
return
401
,
{
return
401
,
{
"code"
:
40001
,
"code"
:
40001
,
"data"
:
resp
,
"data"
:
resp
,
"message"
:
"用户名或密码错误"
"message"
:
err_uname_pwd_tip
}
}
except
Exception
as
e
:
except
Exception
as
e
:
log
.
exception
(
e
)
log
.
exception
(
e
)
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
str
(
e
)}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
str
(
e
)}
async
def
web_third_login
(
args
,
host
):
async
def
web_third_login
(
args
,
host
,
lang
):
"""第三方接口用户名密码登录"""
"""第三方接口用户名密码登录"""
user_name
=
args
.
get
(
"user_name"
)
user_name
=
args
.
get
(
"user_name"
)
password
=
args
.
get
(
"password"
)
password
=
args
.
get
(
"password"
)
err_uname_pwd_tip
=
load_login_tips
(
"err_uname_pwd"
,
lang
)
# 1. 对参数校验
# 1. 对参数校验
if
not
all
([
user_name
,
password
]):
if
not
all
([
user_name
,
password
]):
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"用户名或密码错误"
}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
err_uname_pwd_tip
}
# 1. 准备转发给auth服务的参数
# 1. 准备转发给auth服务的参数
request_body
=
{
request_body
=
{
"phone"
:
user_name
,
"phone"
:
user_name
,
...
@@ -169,26 +176,30 @@ async def web_third_login(args, host):
...
@@ -169,26 +176,30 @@ async def web_third_login(args, host):
else
:
else
:
log
.
info
(
f
"request resp={resp}"
)
log
.
info
(
f
"request resp={resp}"
)
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"用户名或密码错误"
}
"message"
:
err_uname_pwd_tip
}
except
Exception
as
e
:
except
Exception
as
e
:
log
.
exception
(
e
)
log
.
exception
(
e
)
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
str
(
e
)}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
str
(
e
)}
async
def
validation_login
(
args
,
host
):
async
def
validation_login
(
args
,
host
,
lang
):
"""手机验证码登录"""
"""手机验证码登录"""
phone
=
args
.
get
(
"phone"
)
phone
=
args
.
get
(
"phone"
)
verify_client
=
args
.
get
(
"verify"
)
verify_client
=
args
.
get
(
"verify"
)
client_name
=
args
.
get
(
"client_name"
)
client_name
=
args
.
get
(
"client_name"
)
err_uname_pwd_tip
=
load_login_tips
(
"err_uname_pwd"
,
lang
)
# 1. 对参数校验
# 1. 对参数校验
if
not
re
.
match
(
r'^1[3-9]\d{9}$'
,
phone
):
if
not
re
.
match
(
r'^1[3-9]\d{9}$'
,
phone
):
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"手机号码格式错误"
}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"手机号码格式错误"
}
if
not
all
([
phone
,
verify_client
]):
if
not
all
([
phone
,
verify_client
]):
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"用户名或密码错误"
}
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
err_uname_pwd_tip
}
# 效验验证码
# 效验验证码
auth_verify
=
await
auth_phone_verify
(
phone
,
verify_client
)
auth_verify
=
await
auth_phone_verify
(
phone
,
verify_client
)
if
not
auth_verify
:
if
not
auth_verify
:
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"验证码错误"
}
err_vfy_code_tip
=
load_login_tips
(
"err_vfy_code"
,
lang
)
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
err_vfy_code_tip
}
# verify_server = await RedisClient().get(f"sms:sms_{phone}")
# verify_server = await RedisClient().get(f"sms:sms_{phone}")
# if verify_server != verify_client:
# if verify_server != verify_client:
# return 401, {"code": 40001, "data": None, "message": "验证码错误"}
# return 401, {"code": 40001, "data": None, "message": "验证码错误"}
...
@@ -207,11 +218,8 @@ async def validation_login(args, host):
...
@@ -207,11 +218,8 @@ async def validation_login(args, host):
try
:
try
:
log
.
info
(
SETTING
.
auth_url
,
f
"request auth_url={SETTING.auth_url} "
log
.
info
(
SETTING
.
auth_url
,
f
"request auth_url={SETTING.auth_url} "
f
"request_body = {request_body}"
)
f
"request_body = {request_body}"
)
# auth_url = "http://127.0.0.1:9000/unify-api/auth"
resp_str
,
status
=
await
AioHttpUtils
()
.
post
(
SETTING
.
auth_url
,
resp_str
,
status
=
await
AioHttpUtils
()
.
post
(
request_body
,
timeout
=
50
,
SETTING
.
auth_url
,
request_body
,
timeout
=
50
,
)
)
log
.
info
(
f
"request auth_url resp_str={resp_str} status={status}"
)
log
.
info
(
f
"request auth_url resp_str={resp_str} status={status}"
)
resp
=
json
.
loads
(
resp_str
)
resp
=
json
.
loads
(
resp_str
)
...
@@ -221,7 +229,7 @@ async def validation_login(args, host):
...
@@ -221,7 +229,7 @@ async def validation_login(args, host):
return
401
,
{
return
401
,
{
"code"
:
40001
,
"code"
:
40001
,
"data"
:
resp
,
"data"
:
resp
,
"message"
:
"用户名或密码错误"
"message"
:
err_uname_pwd_tip
}
}
except
Exception
as
e
:
except
Exception
as
e
:
log
.
exception
(
e
)
log
.
exception
(
e
)
...
@@ -254,7 +262,8 @@ class ExtAuthentication(Authentication):
...
@@ -254,7 +262,8 @@ class ExtAuthentication(Authentication):
"user_id"
:
user_id
,
"user_id"
:
user_id
,
"message"
:
message
"message"
:
message
}
}
raise
exceptions
.
AuthenticationFailed
(
json
.
dumps
(
msg
),
status_code
=
40001
)
raise
exceptions
.
AuthenticationFailed
(
json
.
dumps
(
msg
),
status_code
=
40001
)
else
:
else
:
# web登录逻辑
# web登录逻辑
user_id
,
message
=
await
web_login
(
args
,
host
)
user_id
,
message
=
await
web_login
(
args
,
host
)
...
@@ -277,5 +286,3 @@ class ExtAuthentication(Authentication):
...
@@ -277,5 +286,3 @@ class ExtAuthentication(Authentication):
async
def
retrieve_refresh_token
(
self
,
user_id
,
*
args
,
**
kwargs
):
async
def
retrieve_refresh_token
(
self
,
user_id
,
*
args
,
**
kwargs
):
return
await
RedisUtils
()
.
hget
(
"auth:refresh_toke"
,
user_id
)
return
await
RedisUtils
()
.
hget
(
"auth:refresh_toke"
,
user_id
)
unify_api/modules/users/views/auth.py
View file @
0604c99b
...
@@ -5,6 +5,8 @@ from sanic.views import HTTPMethodView
...
@@ -5,6 +5,8 @@ from sanic.views import HTTPMethodView
from
pot_libs.aiohttp_util.aiohttp_utils
import
AioHttpUtils
from
pot_libs.aiohttp_util.aiohttp_utils
import
AioHttpUtils
from
pot_libs.logger
import
log
from
pot_libs.logger
import
log
from
pot_libs.settings
import
SETTING
from
pot_libs.settings
import
SETTING
from
unify_api.modules.users.procedures.jwt_user
import
jwt_user
from
unify_api.modules.common.dao.common_dao
import
load_user_lang
from
unify_api.modules.users.procedures.login_pds
import
wechat_login
,
\
from
unify_api.modules.users.procedures.login_pds
import
wechat_login
,
\
web_login
,
third_login
,
web_third_login
,
app_login
,
validation_login
web_login
,
third_login
,
web_third_login
,
app_login
,
validation_login
...
@@ -34,6 +36,8 @@ class AuthView(HTTPMethodView):
...
@@ -34,6 +36,8 @@ class AuthView(HTTPMethodView):
print
(
f
"resp_str = {resp_str} status={status_code}"
)
print
(
f
"resp_str = {resp_str} status={status_code}"
)
return
response
.
json
(
ujson
.
loads
(
resp_str
),
status
=
200
)
return
response
.
json
(
ujson
.
loads
(
resp_str
),
status
=
200
)
user_id
=
jwt_user
(
request
)
lang
=
await
load_user_lang
(
user_id
)
if
client_name
==
"wechat"
:
if
client_name
==
"wechat"
:
# 微信登录逻辑
# 微信登录逻辑
status_code
,
resp_body
=
await
wechat_login
(
args
,
host
)
status_code
,
resp_body
=
await
wechat_login
(
args
,
host
)
...
@@ -46,7 +50,7 @@ class AuthView(HTTPMethodView):
...
@@ -46,7 +50,7 @@ class AuthView(HTTPMethodView):
resp_body
[
"code"
]
=
40001
resp_body
[
"code"
]
=
40001
elif
client_name
==
"script"
:
elif
client_name
==
"script"
:
# 第三方脚本登录
# 第三方脚本登录
status_code
,
resp_body
=
await
third_login
(
args
,
host
)
status_code
,
resp_body
=
await
third_login
(
args
,
host
,
lang
)
if
status_code
==
401
:
if
status_code
==
401
:
resp_body
[
"code"
]
=
40001
resp_body
[
"code"
]
=
40001
elif
client_name
==
"app"
:
elif
client_name
==
"app"
:
...
@@ -57,12 +61,12 @@ class AuthView(HTTPMethodView):
...
@@ -57,12 +61,12 @@ class AuthView(HTTPMethodView):
resp_body
[
"code"
]
=
40001
resp_body
[
"code"
]
=
40001
elif
client_name
==
"password"
:
elif
client_name
==
"password"
:
# 第三方用户名密码登录
# 第三方用户名密码登录
status_code
,
resp_body
=
await
web_third_login
(
args
,
host
)
status_code
,
resp_body
=
await
web_third_login
(
args
,
host
,
lang
)
if
status_code
==
401
:
if
status_code
==
401
:
resp_body
[
"code"
]
=
40001
resp_body
[
"code"
]
=
40001
elif
client_name
==
"validation"
:
elif
client_name
==
"validation"
:
# 手机验证码登录
# 手机验证码登录
status_code
,
resp_body
=
await
validation_login
(
args
,
host
)
status_code
,
resp_body
=
await
validation_login
(
args
,
host
,
lang
)
if
status_code
==
401
:
if
status_code
==
401
:
resp_body
[
"code"
]
=
40001
resp_body
[
"code"
]
=
40001
else
:
else
:
...
...
unify_api/modules/users/views/current_user_info.py
View file @
0604c99b
...
@@ -16,6 +16,8 @@ from unify_api.modules.users.dao.current_user_info_dao import *
...
@@ -16,6 +16,8 @@ from unify_api.modules.users.dao.current_user_info_dao import *
from
unify_api.modules.common.dao.common_dao
import
user_by_phone_number
,
\
from
unify_api.modules.common.dao.common_dao
import
user_by_phone_number
,
\
user_by_user_id
user_by_user_id
from
pot_libs.aiohttp_util.aiohttp_utils
import
AioHttpUtils
from
pot_libs.aiohttp_util.aiohttp_utils
import
AioHttpUtils
from
unify_api.modules.common.dao.common_dao
import
load_user_lang
from
unify_api.modules.common.procedures.multi_lang
import
load_login_tips
from
unify_api.modules.users.procedures.jwt_user
import
auth_phone_verify
,
\
from
unify_api.modules.users.procedures.jwt_user
import
auth_phone_verify
,
\
check_password
check_password
...
@@ -180,9 +182,11 @@ async def post_update_phone(request, body: UpdatePhoneReq):
...
@@ -180,9 +182,11 @@ async def post_update_phone(request, body: UpdatePhoneReq):
wechat_product_dict
,
old_zhiwei_u
,
old_role
=
{},
None
,
None
wechat_product_dict
,
old_zhiwei_u
,
old_role
=
{},
None
,
None
wechat_product_auth
,
wechat_product_auth_dict
=
None
,
{}
wechat_product_auth
,
wechat_product_auth_dict
=
None
,
{}
phone_info
=
await
user_by_phone_number
(
phone
)
phone_info
=
await
user_by_phone_number
(
phone
)
lang
=
await
load_user_lang
(
user_id
)
if
phone_info
:
if
phone_info
:
if
phone_info
.
get
(
"wechat_id"
):
if
phone_info
.
get
(
"wechat_id"
):
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
"该手机号已被绑定"
}
err_tip
=
load_login_tips
(
"phone_bound"
,
lang
)
return
401
,
{
"code"
:
40001
,
"data"
:
None
,
"message"
:
err_tip
}
else
:
else
:
# 删除这条记录
# 删除这条记录
await
update_not_wechat
(
user_id
,
phone
)
await
update_not_wechat
(
user_id
,
phone
)
...
...
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