A man from California is claiming that Apple forced two-factor authentication upon users and that it did not make it sufficiently clear that there would be no way to disable it after 14 days.

Apple being sued for allegedly forcing two-factor authentication...


  • Plaintiff claims Apple forced two-factor authentication upon users.
  • Apple allegedly did not make it clear that 2FA could not be disabled after 14 days of use.
  • 2FA authentication leads to a wastage of time.


Apple’s legal troubles continue to rage on, as the company faces a new class action lawsuit, this time, regarding its two-factor authentication practice. A man from California by the name of Jay Brodsky is taking Apple to court over the way Apple has implemented two-factor authentication for Apple devices and services. Brodsky’s complaint claims that Apple did not make it clear in its documentation that two-factor authentication could not be disabled after 14 days of use. The complaint further goes on to state:

“Two-factor authentication imposes an extraneous logging in procedure that requires a user to both (i) remember password; and (ii) have access to a trusted device or trusted phone number to receive an additional six-digit code that needs to be entered at the time of logging in addition to the user set password. A user does not have an option to disable such doubled up security measures and is stuck with wasting time to log on to his own device. Two-factor authentication requires additional steps to access any third-party apps or services requiring passwords. Two-factor authentication is required each time you turn on a device.”

In essence, Brodsky’s complaint rests on the fact that Apple did not make it clear in its sign-up email that two-factor authentication could not be disabled after 14 days, and that having the feature enabled results in users taking extra time to log into their device or service of choice. Further, his complaint says “Apple does not get user consent to enable two-factor authentication. Apple does not get user consent to then remove the option forever to disable two-factor authentication, once it is enabled. An email with a long paragraph thanking the user and highlighting the good features of two-factor authentication followed by a simple single last line in an email saying that the link will expire on a given date is insufficient to put the user on notice of his options and make an informed decision as to whether to click the link to disable it.”

Two-Factor authentication is a login security measure that has been implemented by most popular services including Google, Facebook and Apple. Two-factor authentication prevents fraudulent logins by unsavoury parties by sending a log-in prompt to a pre-authorized device, or by sending an additional code to said device which is required to be entered while logging in. This adds an additional step to the login process but does ensure, to a great degree, the security of an account. You can read the full complaint here.

Related Read: Apple faces new lawsuit for allegedly disabling old chargers via iOS update

Digit NewsDeskDigit NewsDesk

‘).insertAfter(‘.inside-container p:eq(1)’); */
// $( ” ).insertAfter(‘.inside-container p:eq(0)’);
//method to trunkate the text
function shorten(text, maxLength) {
var ret = text;
if (ret.length > maxLength) {
ret = ret.substr(0,maxLength-3) + “…”;
return ret;

//function to put utm on DontMiss links
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=desktop&utm_campaign=related’);
//trunkate dont miss content
var sub = shorten($(this).html(),47);
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=mobile&utm_campaign=related’);

//disabled method to append dontmiss links to page content by Mayank
/*$(‘div.dontMiss > a’).each(function(index){
//loop over each list item

// if(index%2 > 0){
// index = index – 1;
// }
if($(‘.inside-container > p:eq(‘+index+’)’).length){
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );

/* if(isDesktop()) {
} */

* ga event tracking on page scroll start and end by Mayank

// Debug flag
var debugMode = false;

// Default time delay before checking location
var callBackTime = 100;

// # px before tracking a reader
var readerLocation = 150;

// Set some flags for tracking & execution
var timer = 0;
var scroller = false;
var endContent = false;
var didComplete = false;

// Set some time variables to calculate reading time
var startTime = new Date();
var beginning = startTime.getTime();
var totalTime = 0;

// Get some information about the current page
var pageTitle = document.title;

// Track the aticle load — disabled
if (!debugMode) {
// ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1});
// console.log(“ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1}”);
} else {
alert(‘The page has loaded. Woohoo.’);

// Check the location and track user
function trackLocation() {
bottom = $(window).height() + $(window).scrollTop();
height = $(document).height();

// If user starts to scroll send an event
if (bottom > readerLocation && !scroller) {
currentTime = new Date();
scrollStart = currentTime.getTime();
timeToScroll = Math.round((scrollStart – beginning) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘StartReading’, pageTitle, timeToScroll, {‘metric1’ : timeToScroll});
} else {
alert(‘started reading ‘ + timeToScroll);
scroller = true;

// If user has hit the bottom of the content send an event
if (bottom >= $(‘.inside-container’).scrollTop() + $(‘.inside-container’).innerHeight() && !endContent) {
currentTime = new Date();
contentScrollEnd = currentTime.getTime();
timeToContentEnd = Math.round((contentScrollEnd – scrollStart) / 1000);
if (!debugMode) {
if (timeToContentEnd = height && !didComplete) {
currentTime = new Date();
end = currentTime.getTime();
totalTime = Math.round((end – scrollStart) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘PageBottom’, pageTitle, totalTime, {‘metric3’ : totalTime});
} else {
alert(‘bottom of page ‘+totalTime);
didComplete = true;

// Track the scrolling and track location
$(window).scroll(function() {
if (timer) {

// Use a buffer so we don’t call trackLocation too often.
timer = setTimeout(trackLocation, callBackTime);

‘).insertAfter(“.inside-container p:eq(2)”);


Source link