Flutter 颤振/飞镖:如何处理自定义url方案回调

Flutter 颤振/飞镖:如何处理自定义url方案回调,flutter,dart,dart-http,Flutter,Dart,Dart Http,我正在尝试在flatter中添加Okta API的登录功能。在Okta中,在使用用户名和密码进行身份验证后,它返回一个sessionToken,我必须将其与授权api交换以获取api_令牌 下面是url的外观 https://dev-test.okta.com/oauth2/default/v1/authorize?response_type=token&scope=openid&state=TEST&nonce=TEST&client_id=asdasasdas

我正在尝试在flatter中添加Okta API的登录功能。在Okta中,在使用用户名和密码进行身份验证后,它返回一个sessionToken,我必须将其与授权api交换以获取api_令牌

下面是url的外观

https://dev-test.okta.com/oauth2/default/v1/authorize?response_type=token&scope=openid&state=TEST&nonce=TEST&client_id=asdasasdasd&redirect_uri=com.okta.dev-test:/callback&sessionToken=201111ajXZ86MYTJAqGlo9SJrGN02sTRE364aBkmnBVFLq1lX0c7TL3
我在IOS->com.okta.dev-test中为我的应用程序配置了自定义url方案

因此,一旦调用被发送,它就会重定向到redirectUri,在那里发布api_令牌

com.okta.dev-test:/callback#access_token=eyJraWQiOiJ0Z0EzRERrQU9UaFZfU3g4bXZtOEdFOURtXzhZSGlMZEwzaDQtRzlOQW8wIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkNOYkE0OC1DUHRuNVBzSDNwVHR1dHg1VDlyRVA0U0pydkNFMWkzbnJNVTAiLCJpc3MiOiJodHRwczovL2Rldi01NTEzODAub2t0YS5jb20vb2F1dGgyL2RlZmF1bHQiLCJhdWQiOiJhcGk6Ly9kZWZhdWx0IiwiaWF0IjoxNTcxNDQxNTU3LCJleHAiOjE1NzE0NDUxNTcsImNpZCI6IjBvYTFpcHZlYTVtYURCenBFMzU3IiwidWlkIjoiMDB1MWx4M2E4b1pVVFRFNFUzNTciLCJzY3AiOlsib3BlbmlkIl0sInN1YiI6InByYXZpbmFyckBnbWFpbC5jb20ifQ.S9git7PzJF0RpIxULiSAmQFWkNlhG8KvwUZm8UDR68mNgVoUnfK5rXplO3tXZVRxLyzmcFgCXgU36lWc2-hOWF9NUWvgxf7PAmfdNKjdbveMvZmqyNPuiOcDDVvV-h6C0DYgTAo_5VSMPvTI0QerVmgOQ61yYmi12UH319T7OHirsEN1RhIS1ztHLj0CQuXtmSJoX-C5Ko7Mr3PbRkY6OxmgFbyDuTtxWxqTbn5JHXbNggozs48I_nIwurQOLSq8MGAeaUBToiqCfZNhciqpBpEtmJgg4sck-oZsiyA_ZB8HYpBhTmiJNVUsK4Ln6DsI4m2n3RnRd-DuE-KJnDDm7Q&token_type=Bearer&expires_in=3600&scope=openid&state=TEST
现在,当我在webview中打开这个url时,它能够识别url方案并在那里发布消息。但是,当我试图使用http.get调用url时,它会错误地说

Exception has occurred.
ArgumentError (Invalid argument(s): No host specified in URI com.okta.dev-test:/callback)
有没有办法从回调中获取访问令牌并使用http get解决此问题?或者,有没有其他方法可以在不使用webview的情况下实现这一点


提前感谢

您是否尝试使用Uri拨打电话?get(Uri.http(…))我遇到了完全相同的问题。你能解决它吗?你试过用Uri打电话吗?get(Uri.http(…))我遇到了完全相同的问题。你能解决它吗?