I had this problem recently. What I did:
- refer Deeplink.LoginLocation to another deeplink in your app (accessible to guest users), something like “../link/deeplinkdispatch?originallink=”
- in that deeplink flow you can have a string input parameter “originallink” that will be filled with the orginal deeplink (that will be something like “link/userwantedtogohere?a=1&b=false”), store that in a helper object and show a page where users can choose between login using A (SSO) or login using B (regular)
- redirect users to either A or B, using the helper object to pass the deeplink as well in a way that your SSO or loginpage understands, so they can redirect to the original deeplink after succesful login.