rainycode 1.4.1__tar.gz → 1.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {rainycode-1.4.1 → rainycode-1.4.3}/PKG-INFO +1 -1
  2. {rainycode-1.4.1 → rainycode-1.4.3}/common_models/base_model.py +1 -1
  3. {rainycode-1.4.1 → rainycode-1.4.3}/common_models/wechat_model.py +2 -2
  4. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/captcha_util.py +3 -1
  5. {rainycode-1.4.1 → rainycode-1.4.3}/pyproject.toml +1 -1
  6. {rainycode-1.4.1 → rainycode-1.4.3}/rainycode.egg-info/PKG-INFO +1 -1
  7. {rainycode-1.4.1 → rainycode-1.4.3}/common_base/aiorequests.py +0 -0
  8. {rainycode-1.4.1 → rainycode-1.4.3}/common_base/consts.py +0 -0
  9. {rainycode-1.4.1 → rainycode-1.4.3}/common_base/exception.py +0 -0
  10. {rainycode-1.4.1 → rainycode-1.4.3}/common_base/logging.py +0 -0
  11. {rainycode-1.4.1 → rainycode-1.4.3}/common_base/response.py +0 -0
  12. {rainycode-1.4.1 → rainycode-1.4.3}/common_depends/auth_depend.py +0 -0
  13. {rainycode-1.4.1 → rainycode-1.4.3}/common_models/__init__.py +0 -0
  14. {rainycode-1.4.1 → rainycode-1.4.3}/common_models/user_model.py +0 -0
  15. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/api/auth_api.py +0 -0
  16. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/api/wechat_api.py +0 -0
  17. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/router.py +0 -0
  18. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/schemas/auth_schema.py +0 -0
  19. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/service/auth_svc.py +0 -0
  20. {rainycode-1.4.1 → rainycode-1.4.3}/common_servers/service/wechat_svc.py +0 -0
  21. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/bcrypt_util.py +0 -0
  22. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/ip_util.py +0 -0
  23. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/jwt_util.py +0 -0
  24. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/snowflake_util.py +0 -0
  25. {rainycode-1.4.1 → rainycode-1.4.3}/common_utils/wechat_util.py +0 -0
  26. {rainycode-1.4.1 → rainycode-1.4.3}/core/base_config.py +0 -0
  27. {rainycode-1.4.1 → rainycode-1.4.3}/core/databases/aiodb.py +0 -0
  28. {rainycode-1.4.1 → rainycode-1.4.3}/core/databases/aioredis.py +0 -0
  29. {rainycode-1.4.1 → rainycode-1.4.3}/core/middleware/http_middleware.py +0 -0
  30. {rainycode-1.4.1 → rainycode-1.4.3}/core/start.py +0 -0
  31. {rainycode-1.4.1 → rainycode-1.4.3}/rainycode.egg-info/SOURCES.txt +0 -0
  32. {rainycode-1.4.1 → rainycode-1.4.3}/rainycode.egg-info/dependency_links.txt +0 -0
  33. {rainycode-1.4.1 → rainycode-1.4.3}/rainycode.egg-info/requires.txt +0 -0
  34. {rainycode-1.4.1 → rainycode-1.4.3}/rainycode.egg-info/top_level.txt +0 -0
  35. {rainycode-1.4.1 → rainycode-1.4.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainycode
3
- Version: 1.4.1
3
+ Version: 1.4.3
4
4
  Summary: FastAPI base modules
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aerich==0.9.2
@@ -102,7 +102,7 @@ class BaseModel(MySQLUtils):
102
102
  **kwargs: Any
103
103
  ) -> None:
104
104
  if not getattr(self, 'id', 0) and kwargs.get('id_uuid', False) and 'id' in self._meta.fields:
105
- setattr(self, 'id', str(uuid.uuid4()).replace('-', ''))
105
+ self.id = str(uuid.uuid4()).replace('-', '')
106
106
  return await super().save(using_db=using_db, update_fields=update_fields, force_create=force_create,
107
107
  force_update=force_update)
108
108
 
@@ -32,8 +32,8 @@ class WechatUser(CreateModel):
32
32
  微信用户关联表
33
33
  """
34
34
  id = fields.IntField(pk=True, description="主键")
35
- user = fields.ForeignKeyField("main.User", related_name="wechat_users", description="关联用户")
36
- wechat_app = fields.ForeignKeyField("main.WechatApp", related_name="wechat_users", description="关联微信应用")
35
+ user = fields.ForeignKeyField("main.User", related_name="wechat_users", db_constraint=False, description="关联用户")
36
+ wechat_app = fields.ForeignKeyField("main.WechatApp", related_name="wechat_users", db_constraint=False, description="关联微信应用")
37
37
  openid = fields.CharField(max_length=64, index=True, description="微信OpenID")
38
38
  unionid = fields.CharField(max_length=64, null=True, index=True, description="微信UnionID")
39
39
  session_key = fields.CharField(max_length=128, null=True, description="会话密钥(仅小程序)")
@@ -1,5 +1,6 @@
1
1
  import base64
2
2
  import random
3
+ import secrets
3
4
  import string
4
5
  from io import BytesIO
5
6
 
@@ -17,7 +18,8 @@ class CaptchaUtil:
17
18
  字符集去 0/O、1/I/L,避免误读
18
19
  """
19
20
  alphabet = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"
20
- return "".join(random.choice(alphabet) for _ in range(length))
21
+ # secrets.choice:加密安全随机,避免 6 位码可被预测而削弱防枚举
22
+ return "".join(secrets.choice(alphabet) for _ in range(length))
21
23
 
22
24
  @classmethod
23
25
  def generate_captcha(cls) -> tuple[str, str]:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rainycode"
7
- version = "1.4.1"
7
+ version = "1.4.3"
8
8
  description = "FastAPI base modules"
9
9
  requires-python = ">=3.10"
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainycode
3
- Version: 1.4.1
3
+ Version: 1.4.3
4
4
  Summary: FastAPI base modules
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aerich==0.9.2
File without changes
File without changes
File without changes