Detect Gmail’s 2-Step Authentication

Gmail urges users to use 2-step authentication. Basically this means that Gmail texts users special codes that need to be entered every time they logs-in to theirs account.

This article describes how you can detect 2-step authentication is turned on. This way you can instruct the user to either disable it or to generate and use application specific password for your program.

When 2-steps verification is turned on, Imap.Login method will throw an ServerException with following message:

“[ALERT] Application-specific password required: http://support.google.com/accounts/bin/answer.py?answer=185833 (Failure)”

You can use it to check if application-specific password is needed:

// C#

try
{
   imap.UseBestLogin("pat", "password");
}
catch (ServerException ex)
{
   bool needs2StepVerification = ex.Message.Contains("Application-specific password required");
   imap.Close();
   if (needs2StepVerification)
       Console.WriteLine("Application-specific password required");
   retrun;
}
' VB.NET

Try
	imap.UseBestLogin("pat", "password")
Catch ex As ServerException
	Dim needs2StepVerification As Boolean = ex.Message.Contains("Application-specific password required")
	imap.Close()
	If needs2StepVerification Then
		Console.WriteLine("Application-specific password required")
	End If
	retrun
End Try

Tags: , , , ,

Questions?

Consider using our Q&A forum for asking any questions.