You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

25 lines
1.3 KiB

import os, requests, time, pymysql
BASE = 'http://127.0.0.1:8080/api/v1'
conn = pymysql.connect(host=os.environ.get('DB_HOST', '127.0.0.1'),
port=int(os.environ.get('DB_PORT', '3307')),
user=os.environ.get('DB_USERNAME', 'mydreamjob'),
password=os.environ['DB_PASSWORD'],
database=os.environ.get('DB_NAME', 'mydreamjob'))
r = requests.post(f'{BASE}/auth/sms/send', params={'phone': '13886593964', 'purpose': 'login'})
print(f'SMS send: {r.status_code}')
time.sleep(1)
with conn.cursor() as c:
c.execute('SELECT code FROM sms_verification_codes WHERE phone=%s ORDER BY id DESC LIMIT 1', ('13886593964',))
code = c.fetchone()[0]
r = requests.post(f'{BASE}/auth/login', json={'phone': '13886593964', 'code': code})
print(f'Login: {r.status_code}')
resp = r.json()
role = resp.get('data', {}).get('role', 'N/A')
print(f'Role: {role}')
token = resp.get('data', {}).get('accessToken', '')
r = requests.get(f'{BASE}/auth/me', headers={'Authorization': f'Bearer {token}'})
print(f'Auth/me: {r.status_code} {r.text[:200]}')
with conn.cursor() as c:
c.execute('SELECT u.role, GROUP_CONCAT(ur.role) FROM users u JOIN user_roles ur ON u.id=ur.user_id WHERE u.phone=%s GROUP BY u.id', ('13886593964',))
print(f'DB: {c.fetchone()}')
conn.close()