在本机iOS应用程序中从web视图进行身份验证



我有一个web后端服务器,可以处理来自电子邮件、facebook、谷歌的网站(html(身份验证。。。。

是否可以将身份验证web表单加载到本地web视图中,拦截本地应用程序的身份验证响应,并将登录状态存储到本地应用程序中,以便本地应用程序能够向后端服务器发送REST授权的查询?

这种情况可能发生吗?

是的,可以使用WKWebView。它有导航代表API

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler

使用上面的API,您可以检查通过cookie来的访问令牌。

Objective-c

WKWebsiteDataStore *dataStore = webView.configuration.websiteDataStore;
WKHTTPCookieStore *cookieStore = dataStore.httpCookieStore;
[cookieStore getAllCookies:^(NSArray<NSHTTPCookie*> *cookieArray) {
NSString *cookieValue = nil;
for (NSHTTPCookie *cookie in cookieArray) {
if ([cookie.name isEqualToString:@"access_token"]) {
NSString *accessToken = cookie.value;
}
}
}];

Swift

let dataStore = webView.configuration.websiteDataStore
let cookieStore = dataStore.httpCookieStore
cookieStore.getAllCookies({ cookieArray in
let cookieValue: String? = nil
for cookie in cookieArray ?? [] {
if (cookie.name == "access_token") {
let accessToken = cookie.value
}
}

})

这就是我在我们的项目中所做的。希望这对你有帮助。

最新更新