Hallo, wir haben den folgenden Ablauf verwendet, um ein benutzerdefiniertes Chrome-Anmeldeereignis auszulösen, wenn der Kunde bekannt ist. Vor kurzem sind wir auf diese Warnung gestoßen.Automatische Chrome-Anmeldung - Verwerfen "PasswordCredential" -Objekte in "Fetch - Howto Solve" übergeben?
(index):1259 [Deprecation] Passing 'PasswordCredential' objects into 'fetch(..., { credentials: ... })' is deprecated, and will be removed in M62, around October 2017. See https://www.chromestatus.com/features/5689327799500800 for more details and https://developers.google.com/web/updates/2017/06/credential-management-updates for migration suggestions.
Wir verwenden die folgenden, den Kunden anzumelden.
Meine Frage ist: 1) Wie können wir das oben genannte 'Deprecation' Problem mildern/lösen? Und 2) Gibt es eine nativere/Standardmethode, um nach einer Anmeldebestätigung zu fragen? (Pref. In der Benutzer eigene Browser-Sprache)
<script>
window.onload = function(e) {
var debug = false;
var _waitandaskagain = 1800;
var start = new Date()
var _askforconfirmation = false;
var cookie_name = "smartlock_cancel_cookie";
var smartlock_cancel_cookie = getCookie(cookie_name);
if (smartlock_cancel_cookie) {
return
} else {
navigator.credentials.get({
password: true,
}).then(function(cred) {
if (cred) {
if (cred.type == 'password') {
var form = new FormData();
cred.additionalData = form;
cred.additionalData.append("form_key", "SECRET");
var url = 'https://ourdomain.com/webcustomer/account/loginpostgoogle/';
if (_askforconfirmation && confirm('Logon to the website securely? Please Confirm')) {
fetch(url, {
method: 'POST',
credentials: cred
}).then(function(response) {
if (response.status == 202) {
if (debug) {
console.log('Login success; reloading now');
return;
}
navigator.credentials.store(cred);
window.location.reload();
}
if (debug) {
console.log('Server status: ' + response.status);
}
return;
}).catch(function(err) {
console.log('Smartlock Ajax error:' + err.message);
}).then(always, always);
} else {
expiry.setDate(start.getDate() + (_waitandaskagain));
document.cookie = cookie_name+"=true; expires=" + expiry.toGMTString() + "; path=/";
return;
}
}
} else if (typeof cred === "undefined") {
var end = new Date();
if (+end >= (+start + 100)) {
if (debug) {
console.log('Manual cancel detected - too slow');
}
expiry.setDate(start.getDate() + (_waitandaskagain));
document.cookie = cookie_name+"=true; expires=" + expiry.toGMTString() + "; path=/";
}
if (debug) {
console.log('Credentials undefined');
}
return;
}
});
}
}