簡體   English   中英

AWS Cognito-社交登錄選項行為

[英]AWS Cognito - social sign-in option behaviour

我們已經為面向消費者的應用程序(iOS,Android和React Native Web應用程序)實現了社交注冊和登錄選項,並且我們正在使用AWS Cognito和FB OAuth來處理用戶身份驗證。

我們尚未發布,但已找到通過此方法對用戶進行身份驗證的方式的“問題”。 我在這方面只具備基本的技術知識,因此請原諒我使用的任何虛擬語言。

本質上要求是我們的應用程序只提示輸入自己的Facebook憑證的用戶(注冊或登錄) 僅當他們沒有積極和登錄Facebook的會議上的瀏覽器。

例如

  • 如果用戶在該瀏覽器上登錄了FB並想要登錄到我們的應用程序,則我們的應用程序可以“看到”有活動的FB登錄名,利用該登錄名對用戶進行身份驗證並將其登錄到我們的應用程序中。
  • 如果用戶在該瀏覽器上登錄FB並想登錄我們的應用程序,則我們的應用程序能夠“看到” 沒有活動的FB登錄名,從而提示用戶提供其FB憑據以對其進行身份驗證。 假設他們成功執行了此操作,然后他們將登錄到我們的應用程序。

如果用戶退出我們的應用程序,然后稍后返回並想要再次登錄,則運行上述“測試”以檢查我們是否可以立即對其進行身份驗證,或者是否需要提示他們提供FB憑據。

我們目前從技術合作伙伴那里得到的理解是不可能的,但是渴望了解是否有人能夠使用我們正在使用的技術來做到這一點?

最后,是否有人成功利用iOS和Android的FB SDK以及AWS Cognito來允許其應用程序使用本機FB應用程序(在設備上)作為身份驗證的途徑(與將其推送到用戶必須輸入的網頁上相比) FB憑證)

謝謝湯姆

作為OAuth 2.0的一部分(您未指定),該流將通過瀏覽器進行路由。 身份提供者將有權訪問存儲在瀏覽器中的cookie,並且應該能夠在任何活動會話中進行拾取。 除非您實現自己的cookie存儲或瀏覽器,否則您不必擔心。

FB SDK提供登錄行為的選項,范圍從從Facebook應用程序讀取會話到瀏覽器。 這些已記錄在AndroidiOS中

除了@donkon指出的內容外,您的本機應用程序將無權訪問執行授權的用戶代理(瀏覽器)中存儲的任何憑據。 這是預期的行為,並提高了安全性。

當你的客戶端需要得到您的應用程序客戶端憑證(又名訪問令牌),並且具有通過外部的IdP(這里FB)來驗證用戶,你通常在用戶代理運行此驗證過程。 該站點的行為取決於IdP,並且可以通過調用IdP的URL中作為查詢參數提供的選項進行某種程度的定制。 請注意,FB登錄既不完全符合OAuth2,也不完全符合OIDC。

對於Facebook登錄,用於定制流的相關參數是auth_type ,類似於針對OIDC符合IDP的prompt選項。 有效值當然也rerequest供應商: reauthenticatehttpsrerequest

盡管如此,問題仍然存在,您如何自定義AWS Cognito注冊和登錄流程,以將參數轉發到FB登錄IDP。 我自己無法回答這個問題,因為到目前為止我還沒有使用過AWS Cognito。

但據我所知,您的要求無法100%滿足,因為您的應用無法“看到”用戶代理中存在有效的會話。 但是重要的是,從UX的角度來看,行為是否可以接受-當然,最重要的是,它必須是安全的。

參考:

https://developers.facebook.com/docs/facebook-login/reauthentication/ https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM