Disable certain functionalities in RemoteOAuth2Mixin

Đang mở
#176 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
api, authentication, security

Hướng nghiên cứu

Bắt đầu bằng cách đọc RemoteOAuth2Mixin và DeveloperTokenAuth, sau đó xem xét đề xuất về lớp cơ sở dùng chung trong issue #173. Xác định liệu revoke() và các tùy chọn constructor được liệt kê nên bị vô hiệu hóa hay loại bỏ, đồng thời định nghĩa hành vi breaking change dự kiến cho bản phát hành 2.0.0.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

breaking enhancement

When using RemoteOAuth2Mixin, all /token calls are delegated to another process or server. Thus:

  • The client_id and client_secret shouldn't be required. In fact, they perhaps shouldn't even be allowed to be passed. Clients that need to do remote auth should be discouraged from having any of their credentials hard-coded, especially since they aren't even needed.
  • store_tokens should perhaps be disallowed. Since the tokens are owned by the remote process, it should be in control of where its tokens go. If a client needs to restart, it should get its tokens from the remote process/server, not from its own token store.
  • box_device_id and box_device_name are useless if we're not making /token calls.
  • refresh_token should never be available to the client, so it shouldn't be possible to pass this.

Also, since the remote process/server owns the tokens, we should possibly disable revoke(). If we do that, then:

  • We definitely don't need client_id and client_secret anymore, since they would never be used.
  • For the same reason, we also don't need network_layer anymore.
  • We might not need refresh_lock anymore. Presumably, the remote server can handle its own locking, without the clients needing to coordinate.

revoke could be made to pass (DeveloperTokenAuth does this) or raise, and the unneeded constructor arguments can be passed as None to the super-class, so that TypeError is raised if a user tries passing any of them.

Alternatively, factor this into #173, and create a common base-class that doesn't have any of these functionalities.

This would be a breaking change, so consider this for 2.0.0.

Ngôn ngữ chính
Python
Star
460
Fork
223
Merge trung bình
14 giờ 18 phút
Pull request đã merge (30 ngày)
21

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của box/box-python-sdk

Tất cả issue của box/box-python-sdk

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.