feat(auth): 添加用户权限获取接口并完善JWT令牌角色信息

- 在JWT令牌中添加用户角色信息
- 新增get_my_permissions接口用于获取当前用户权限码列表
- 重构认证回调逻辑,增加错误日志记录
- 更新用户信息获取接口使用Authorization头验证
```
This commit is contained in:
2026-04-06 00:40:08 +08:00
parent dfa8fa62a8
commit f1f8518985
71 changed files with 9402 additions and 191 deletions
@@ -0,0 +1,38 @@
"""add device_replacements table
Revision ID: h8i9j0k1l2m3
Revises: g7h8i9j0k1l2
Create Date: 2026-04-05
"""
from alembic import op
import sqlalchemy as sa
revision = 'h8i9j0k1l2m3'
down_revision = 'g7h8i9j0k1l2'
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
'device_replacements',
sa.Column('id', sa.BigInteger(), primary_key=True),
sa.Column('onu_device_id', sa.BigInteger(), sa.ForeignKey('onu_devices.id'), nullable=False),
sa.Column('old_mac', sa.String(17), nullable=False),
sa.Column('new_mac', sa.String(17), nullable=False),
sa.Column('reason', sa.Text()),
sa.Column('operator_id', sa.String(100)),
sa.Column('operator_name', sa.String(100)),
sa.Column('replaced_at', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
sa.Column('created_at', sa.TIMESTAMP(), nullable=False, server_default=sa.text('now()')),
)
op.create_index('idx_device_replacements_onu_device_id', 'device_replacements', ['onu_device_id'])
op.create_index('idx_device_replacements_old_mac', 'device_replacements', ['old_mac'])
op.create_index('idx_device_replacements_new_mac', 'device_replacements', ['new_mac'])
def downgrade():
op.drop_index('idx_device_replacements_new_mac', 'device_replacements')
op.drop_index('idx_device_replacements_old_mac', 'device_replacements')
op.drop_index('idx_device_replacements_onu_device_id', 'device_replacements')
op.drop_table('device_replacements')