我有一个端点API,我正在使用discoveryapis_generator
生成的Dart客户端库访问。一切都很好,除了生成的库似乎没有反映我的API的身份验证要求。
是否只需要以某种方式创建经过身份验证的http
对象,以便传递到以下行中的应用程序BrowserClient()
构造函数?
my_api = new MyApi(new BrowserClient());
建议的方法是创建经过身份验证的http
对象,以使用here所述的googleapis_auth
包吗?我是在正确的轨道上吗?
答案 0 :(得分:2)
身份验证不是API本身的一部分。实际上,http客户端将发送适当的http标头以进行用户身份验证。假设您使用标准的Google身份验证机制,则可以像使用标准Google API(云端硬盘等)一样使用程序包https://pub.dartlang.org/packages/googleapis_auth
。
您必须创建一个clientId(谷歌控制台)并使用BrowserOAuth2Flow来获取AuthClient(扩展http.client),然后执行new MyApi(authClient)
我有一个(非常古老的)项目,我覆盖google auth的标准行为,允许在身份验证过程中使用一个简单的示例指定userId(从未真正找到该文档,但它有效),使用PlusApi来获取用户名,但它可以以类似的方式为您自己的api工作。也许这有助于https://github.com/alextekartik/tekartik_googleapis_auth.dart
我认为在调用email
createImplicitBrowserFlow
范围
还有一些使用谷歌api的示例可以提供帮助:https://github.com/dart-lang/googleapis_examples