【问题标题】:How to track URL in flutter with website platform如何在网站平台上跟踪 URL
【发布时间】:2021-07-30 10:55:12
【问题描述】:

我想在我的网站登录页面中进行 oAuth2 验证,然后我想从同一页面的 url 获取令牌,但问题是我无法获取 URL。

下面的 URL 是使用此 url 的 OAuth2 url 我正在使用 Flutter 对网站进行身份验证步骤。

第一个网站将在登录页面打开后在浏览器中打开,登录后我将获得 access_token。但是我面临着如何使用 html.window.location 函数获取 access_code 的困难。

我已尝试使用此代码 WidgetsBinding.instance!.addPostFrameCallback((_) {

html.window.location.assign( 'https://example/connect/authorize?response_type=token&client_id=$clientId&redirect_uri=https://example.app/silentRenew&scope=getinfo'); });

任何人有更好的解决方案,请提供建议。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    皮纳尔!我最近使用 Gitlab API 做了一个 oAuth2 通量。我建议你使用 oauth2 插件:oauth2。您只需要拥有授权端点、访问令牌端点和重定向 url。 在此之后,您只需要调用 3 个方法。

    1. 获取您的 AuthorizationCodeGrant。

      var grant = oauth2.AuthorizationCodeGrant(identifier, authorizationEndpoint, tokenEndpoint,secret: secret)

    2. 获取授权网址。

    var authorizationUrl = grant.getAuthorizationUrl(redirectUrl);

    1. 获取返回的代码。

    await grant.handleAuthorizationResponse(responseUrl.queryParameters);

    该方法自动返回您的代码。

    在我的例子中,我使用了 webview,而不是打开浏览器来监听重定向的 url。 WebView

    您只需将authorizationUrl 作为webview 中的初始页面标志传递,并使用onPageStarted 标志监听url。所以你想要做的是:当访问 redirectUrl 时,它给你授权你的访问令牌的代码,你调用方法 3,只有在这一刻。我希望这对您有所帮助,如果您遇到问题,请告诉我。

    【讨论】:

    • 没有秘钥可以吗?因为在我的情况下我没有密钥
    • 我相信是的。因为它是一个可选参数。
    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多