我正在尝试构建一个使用 OAuth 连接到另一个网站上的用户帐户的 Flutter 应用程序。这需要导航到用户可以输入其凭据的站点的 OAuth 页面,然后解析在用户返回时发送回应用程序的代码。
所以我的问题是:
- 如何导航到 OAuth 网页?
我发现我可以导航到这样的内部路线:
Navigator.of(context).pushNamed('/some_page');
但是如果我想去一个外部页面https://coolsite.com/oauth/authorize
呢?
我该如何做到这一点 (a) 通过在本地 Web 浏览器中打开 URL,以及 (b) 使用应用内 Web 视图?
- 身份验证后我应该将用户重定向到哪个 URL,以便他们返回应用程序,以及如何解析响应?
好像有2种方式:
(a) 让用户被重定向到一个空白页面,该页面的 URL 和标题中有授权码。如果这种方法 - 我如何解析页面或 URL?
(b) 将用户重定向到某种方案,例如my-dart-app://coolsite-oauth?code=xyz
. 如果这种方法 - 我如何注册该方案,并cool site-OAuth
映射到我在调用时指定的路由new MaterialApp
,或者其他地方?我将如何解析查询参数?