【问题标题】:using reqwest crate for oauth2 authentication - redirect_uri_mismatch使用 reqwest crate 进行 oauth2 身份验证 - redirect_uri_mismatch
【发布时间】:2021-06-05 03:52:05
【问题描述】:

我正在使用 reqwest 对使用 google oauth 的用户进行身份验证。我已正确设置凭据(client_id、secret、redirect_uris),但我仍然无法交换从 google 获取的代码以获取令牌。

let mut params = HashMap::new();
params.insert("client_id", &config.web.client_id);
params.insert("client_secret", &config.web.client_secret);
params.insert("grant_type", &grant_type);
params.insert("redirect_uri", &redirect_uri);
params.insert("code", code);

let client = reqwest::blocking::Client::new();
if let Ok(response) = client.post("https://oauth2.googleapis.com/token")
  .form(&params)
  .send() {
  println!("{:?}", response);
}

它总是返回redirect_uri_mismatch。 用于在身份验证期间检索代码的 redirect_uri 有效,但用于检索访问和刷新令牌的 redirect_uri 不起作用。 我在 php 中有一个类似的 webapp,使用相同的重定向 uri,它可以工作。我就是不能让它生锈。

我在从https://accounts.google.com/o/oauth2/v2/auth 端点获取授权码时使用不同的redirect_uri,在发布到https://oauth2.googleapis.com/token 以获取访问和刷新令牌时使用另一个redirect_uri。

【问题讨论】:

  • 没有。我已经阅读了该线程,并且为了以防万一,我已经多次更改了重定向 uri。我也尝试过等待 2 天,看看这是否只是与时间相关的问题,但无济于事。真的很难过。
  • 事实证明,在获取https://accounts.google.com/o/oauth2/v2/auth获取授权码并发布到https://oauth2.googleapis.com/token获取访问和刷新令牌时,我无法使用不同的redirect_uri。

标签: rust oauth-2.0 google-oauth google-authentication reqwest


【解决方案1】:

事实证明,在检索授权代码和检索访问令牌时,我无法使用不同的重定向 uri。

【讨论】:

    最近更新 更多