gpt4 book ai didi

ios - 使用本地开发服务器的iOS Google Cloud Endpoint Authenticated API调用

转载 作者:行者123 更新时间:2023-12-01 19:09:05 25 4
gpt4 key购买 nike

我已经实现了一些需要Google用户身份验证的 call 的云端点,现在我想使用iOS应用程序测试这些 call 。到目前为止,我已经按照文档中的所有步骤进行操作,并且设法从应用程序中获取用户OAUTH登录的权限,但是,当我随后尝试对本地开发服务器(localhost:8888)进行API调用时),出现以下错误:

无法授权方案http

根据我的阅读,auth无法使用http方案,并且需要使用https。所以我的问题是:本地开发服务器可以使用https吗?或者,还有其他我想念的东西可以让我在本地环境中测试用户身份验证吗?

任何帮助是极大的赞赏。
干杯。

最佳答案

感谢您的帮助@bossylobster。我一直在本地开发服务器上使用http,但是,真正的问题是iOS OAuth2库不会授权非https请求,这意味着我无法在本地测试经过身份验证的调用。

我最终在iOS OAuth2库的GTMOAuth2Authentication类中找到一个标志,该标志允许该库授权所有请求(包括非https):

// Property indicating if this object will authorize plain http request
// (as well as any non-https requests.) Default is NO, only requests with the
// scheme https are authorized, since security may be compromised if tokens
// are sent over the wire using an unencrypted protocol like http.
@property (assign) BOOL shouldAuthorizeAllRequests;

默认情况下,此标志设置为false / NO。为了更新此标志以处理我的请求,我在发出API请求之前在OAUTH回调方法中更改了它的值:
- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
finishedWithAuth:(GTMOAuth2Authentication *)auth
error:(NSError *)error {
[self dismissViewControllerAnimated:YES completion:nil];

if (error != nil) {
// Authentication failed
...
} else {
// Authentication succeeded
...

// TODO: for development purposes only to use non-https....remove for release.
auth.shouldAuthorizeAllRequests = YES;

// Make some API calls
...
}
}

完成更改后,iOS库将向本地开发服务器授权非https请求。重要的是要注意,此标志仅应用于开发目的。

关于ios - 使用本地开发服务器的iOS Google Cloud Endpoint Authenticated API调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17909002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com