gpt4 book ai didi

ios - AppAuth - 外部浏览器窗口打不开?

转载 作者:行者123 更新时间:2023-11-29 13:56:23 24 4
gpt4 key购买 nike

我在用 objective-c 编写的应用程序中使用 AppAuth 库进行自定义单点登录。

到目前为止,我已经设法让它在 swift 中运行,但是当我使用相同的代码转换为 objective c 时,浏览器没有打开。这是我到目前为止所拥有的(已经从此处包含的代码中删除了所有 url 和 id,所以不要介意此处的字符串为空):

在应用委托(delegate)中:

@property(nonatomic, strong, nullable) id<OIDExternalUserAgentSession> currentAuthorizationFlow;

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options {
// Sends the URL to the current authorization flow (if any) which will process it if it relates to
// an authorization response.
if ([_currentAuthorizationFlow resumeExternalUserAgentFlowWithURL:url]) {
_currentAuthorizationFlow = nil;
return YES;
}

return NO;
}

在 View Controller 中:

- (IBAction)loginButtonAction:(id)sender {
NSURL *authorizationEndpoint = [NSURL URLWithString:@""];
NSURL *tokenEndpoint = [NSURL URLWithString:@""];

OIDServiceConfiguration *configuration = [[OIDServiceConfiguration alloc] initWithAuthorizationEndpoint:authorizationEndpoint tokenEndpoint:tokenEndpoint];

NSString *clientId = @"";
NSURL *redirectUri = [NSURL URLWithString:@""];

OIDAuthorizationRequest *builder = [[OIDAuthorizationRequest alloc] initWithConfiguration:configuration clientId:clientId scopes:@[OIDScopeOpenID] redirectURL:redirectUri responseType:OIDResponseTypeCode additionalParameters:nil];

// performs authentication request
AppDelegate *appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;
appDelegate.currentAuthorizationFlow = [OIDAuthState authStateByPresentingAuthorizationRequest:builder presentingViewController:self callback:^(OIDAuthState *_Nullable authState, NSError *_Nullable error) {
if (authState) {
NSLog(@"Got authorization tokens. Access token: %@", authState.lastTokenResponse.accessToken);
} else {
NSLog(@"Authorization error: %@", [error localizedDescription]);
}
}];
}

这会打开一个警告,询问用户是否要登录,如果我按继续,外部浏览器应该会打开自定义 SSO 页面。问题是按下继续后没有任何反应。

有什么想法吗?

最佳答案

检查您的配置和请求中的参数,尤其是颁发者。不存储 currentAuthorizationFlow 也停止了我的流程。

嗯。

关于ios - AppAuth - 外部浏览器窗口打不开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55531782/

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