Closed chenheng0910 closed 4 years ago
Does the login work in plain Safari on iOS? (my guess is no)
iOS 14 will introduce FaceID and TouchID. Although I did no test it yet.
Yes:
Added a Web Authentication platform authenticator using Face ID or Touch ID, depending on which capability is present.
(https://developer.apple.com/documentation/safari-release-notes/safari-14-beta-release-notes), but I'll doubt they a) backport it to iOS 13 and b) that this issue is invalid since it's a Safari issue we can't workaround.
Agreed. Closing because this isn't a bug. Perhaps in the future it will be a feature request, if something needs to be enabled in the WKWebView for iOS 14+
@breautek
I change in-app-browser plugin from 4.0.0 to 3.2.0 and add the code as follow in CDVUIInAppVrowser.m
file in line 74, and IOS face login worked
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
NSDate *expiresDate = [NSDate dateWithTimeIntervalSinceNow:3600*24*30*12];
NSArray *newCookies = [NSArray arrayWithObjects:cookie.name, cookie.value, expiresDate, cookie.domain, cookie.path, nil];
if(newCookies){
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:[newCookies objectAtIndex:0] forKey:NSHTTPCookieName];
[cookieProperties setObject:[newCookies objectAtIndex:1] forKey:NSHTTPCookieValue];
[cookieProperties setObject:[newCookies objectAtIndex:2] forKey:NSHTTPCookieExpires];
[cookieProperties setObject:[newCookies objectAtIndex:3] forKey:NSHTTPCookieDomain];
[cookieProperties setObject:[newCookies objectAtIndex:4] forKey:NSHTTPCookiePath];
NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:newCookie];
}
}
We think this problem is related to cookies. I'd like to know what you think?
Version 4.0.0 should not have the file CDVUIInAppVrowser.m
. This was the UIWebView implementation that got removed in this version.
Cookies are indeed a difficult topic in inappbrowser and WKWebView but I don't understand why this should enable Fingperprint authentication that is only coming in the next major version of iOS.
Could you please provide more details? Possibly a video would help us to understand this.
@NiklasMerz Sure, i will upload test video and my application's login log both android and ios. But i don't know where should i upload these info that you could see it. Maybe Email is ok if you don't mind
If you don't mind uploading it publicly please upload it to this issue or create a sample application to show the issue.
IOS login log:
Android login log:
Here you can see ios return url with an error:
A silent sign-in request was sent but no user is signed in.
But android return url with a code
Bug Report
Problem
Hi there I am working for a hybrid application using IONIC v3. I use the in-app-browser (v4.0.0)to do a third-party login to Microsoft, and also to achieve the use fingerprint or facial print login. And Android worked, but IOS failed .
What is expected to happen?
success login both android and ios
What does actually happen?
Android worked, but IOS failed .
Information
Command or Code
Environment, Platform, Device
Platform: IOS
Version information
ionic: 4.2.0 angular/core: 5.2.11 cordova: 9.0.0 cordova-ios: 5.0.0 cordova-android: 8.1.0 node: 10.16.0 npm: 6.9.0 cordova-plugin-inappbrowser: 4.0.0
Checklist