gpt4 book ai didi

ios - willSendRequestForAuthenticationChallenge 目的

转载 作者:行者123 更新时间:2023-11-29 03:30:06 29 4
gpt4 key购买 nike

我在看 Box Oauth2.0 View Controller : https://github.com/box/box-ios-sdk-v2/blob/master/BoxSDK/OAuth2/BoxAuthorizationViewController.m

他们有以下代码:

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{

包含这样一段代码的目的是什么?

在webview中显示oauth2.0流程是否有必要?

最佳答案

简单来说,这个委托(delegate)方法体现了HTTP 1.1中规定的“访问认证”方案,特别是RFC 2617 .

当未经身份验证的客户端发送请求时,服务器会通过向客户端发送 401(未经授权)响应消息以及响应中的 WWW-Authenticate header 来“挑战”客户端。然后,客户端可以通过提供合适的凭据并重复请求来回答 WWW-Authenticate header 中指定的特定“挑战”。

客户端到底需要做什么取决于质询的类型和授权方案以及客户端的要求。 URL 加载方案已经实现了在许多情况下足够的默认行为,但是当默认行为不合适时,您可以实现此委托(delegate)并根据您的特定需求对其进行定制。

IMO,OAuth 客户端库应该实现此委托(delegate)。当客户端身份验证失败时,服务器可能会在其响应中发送 HTTP 401(未经授权)状态代码,其中包括指示支持哪些身份验证方案的 WWW-Authenticate header 字段。 (请参阅§5.2.错误响应RFC 6749)。

正确实现此委托(delegate)方法确实是一个高级主题,特别是因为这会影响安全性。因此,我强烈建议您在意外禁用 HTTPs 服务器信任评估之前阅读更多 Material 。 ;)

关于ios - willSendRequestForAuthenticationChallenge 目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914261/

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