【发布时间】:2018-12-12 19:00:20
【问题描述】:
我已经运行了来自https://github.com/dart-lang/googleapis_examples/blob/master/drive_upload_download_console/bin/main.dart 的示例。
该示例创建了一个经过身份验证的 HTTP 客户端,用于访问 Google Drive API:
import 'package:googleapis_auth/auth_io.dart' as auth;
…
…
auth.clientViaUserConsent(identifier, scopes, userPrompt).then((client) { // with client_id, client_secret, scope
var api = new drive.DriveApi(client);
…
…
}
当我运行示例时,每次运行上述示例时,我都必须在网络浏览器中征得用户同意。
我想创建一个经过身份验证的 HTTP 客户端,而不必使用用户同意函数 (auth.clientViaUserConsent),而是使用存储的访问令牌或刷新令牌。如何创建这样一个经过身份验证的 HTTP 客户端?使用 googleapis_auth 包?(https://pub.dartlang.org/packages/googleapis_auth)
【问题讨论】:
-
如果您的代码在服务器上运行,您可以保存访问令牌和刷新令牌。如果您的代码在客户端上运行,则无法执行此操作。但是,用户至少需要授权一次,您的代码不能请求特权范围(权限),并且您的应用必须获得 Google 的批准。基本上这意味着您的令牌将仅限于用户的姓名和电子邮件地址。
标签: google-api dart flutter google-oauth