QWebEngineView& API访问令牌获取

时间:2018-01-17 00:17:25

标签: c++ qt oauth

基本上我只是搞乱了一个应该使用某些API的库(用于学习目的)。因此,为了符合OAuth协议,我需要授权使用某种Web视图并获取访问令牌。重定向后,AT作为GET参数传递。作为Qt的新手,我不知道如何跟踪Web视图状态并获取基本数据。

实际上我有一个auth过程,它接受一个回调,后面必须返回访问令牌作为参数。

vk_api::auth<>("123456", vk_api::scopes::friends, [this](const std::string& contents) -> std::string {
    this->ui->m_webview->setHtml(QString(contents.c_str()));
    ...
});

另外,我不想在调用时阻止UI。

1 个答案:

答案 0 :(得分:0)

您有一些选择:

  1. 使用新的Qt Network Authorization库。
  2. 如果您想自己动手,通常的方法是让服务重定向到您收听的localhost端口。请参阅QTcpServerNetwork Programming with Qt
  3. Qt WebKit已弃用,请改用QWebEngineView。您可以使用QWebEngineUrlRequestInterceptor
  4. 拦截请求并查找授权令牌
  5. 您可以拦截从Qt WebKit发出的请求,并使用自定义QNetworkAccessManager查找授权。