AuthActivity with Firefox's "Tab queue" turned on cancels login flow
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 42/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- android, java
- Lĩnh vực
- authentication, mobile
Hướng nghiên cứu
Bắt đầu trong src/main/java/com/dropbox/core/android/AuthActivity.java, quanh onResume() tại dòng được tham chiếu, và theo dõi cách lần resume thứ hai gọi authFinished(null) rồi xóa trạng thái. Tái hiện với Android 7.1.1 và Firefox Tab Queue được bật, sau đó xác minh rằng việc quay lại từ lần đăng nhập trình duyệt được xếp hàng vẫn liên kết lần đăng nhập đã hoàn tất với ứng dụng client thay vì coi đó là bị hủy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
SDK version: 3.0.8
Android Version: 7.1.1 (didn't test on other versions)
On Android, Firefox's Tab Queue feature causes the web browser login flow to not work due to SDK's AuthActivity treating the login flow as cancelled before user runs the login flow.
Repro Steps:
- Set Firefox as default Browser for Android.
- In Firefox go to Settings -> General -> Turn on "Tab queue" (which requires grating access Firefox to draw over apps, Settings link should show in Firefox when turning this on for the first time).
- Invoke SDK's
AuthActivityfrom client app with no Dropbox app installed (to invoke browser flow) which causesAuthActivityto request Android to launch the login flow URL in a web browser which launches the Firefox browser to open the login flow URL. - Due to Firefox's "Tab queue" feature, Firefox opens the login flow URL internally but does NOT show it to the user. Instead it returns right away causing
AuthActivityin client app to show again while also showing a Toast like UI from Firefox to open the queued URL. - User then opens the login flow with the Firefox Tab queue Toast UI which then does show the login flow URL in Firefox now.
- When user completes login flow in Firefox the web login flow navigates back to client application.
- Client app's
AuthActivitywhen navigated back does nothing because the Dropbox SDK has no token associated with the completed login flow.
The reason for having no token in the Dropbox SDK in step 7 is because in Step 4 when Firefox navigates back to the client app, the Dropbox SDK handles this as a cancelled login attempt and wipes its internal state (same would happen if user task switches back to client app while on Login flow in browser). This logic can be seen in https://github.com/dropbox/dropbox-sdk-java/blob/c710ef80f1c2700031baad7c615dc9934162c090/src/main/java/com/dropbox/core/android/AuthActivity.java#L412 (onResume() will be called for the second time when Firefox navigates back to client app while mAuthStateNonce is non null -> authFinished(null))
For now I'm advising users who report this to simply turn off Firefox's "Tab Queue" feature or install Dropbox however it would be ideal if this just worked for users.
- Ngôn ngữ chính
- Java
- Star
- 627
- Fork
- 463
- Merge trung bình
- 5 phút
- Pull request đã merge (30 ngày)
- 10
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dropbox/dropbox-sdk-java
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
dropbox/dropbox-sdk-java#536 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
dropbox/dropbox-sdk-java#560 · 6 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
dropbox/dropbox-sdk-java#550 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 15/100
dropbox/dropbox-sdk-java#542 · 1 bình luận ·
-
ListFolderArg is package-private Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
dropbox/dropbox-sdk-java#535 · 1 bình luận ·
Tất cả issue của dropbox/dropbox-sdk-java
Issue tương tự
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
inu-appcenter/memorIN-backend#288 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
frontend maui-pilot pilot-ask question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Đang mởarea/plugin
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
kestra-io/plugin-kestra#190 ·