In fact, 2. consists of the specific use / extension of OAuth 2.0 for Google to set the user ID on top of the authorization provided by the OAuth 2.0 kernel. Using 2., you will need to make sure that you get the access token in the code stream, and you will need to make a special introspective call to Google to find out who the user is, where the user identification is returned in special cases by Google.
3. On the other hand, 3. is a standardized way for users to log in through a third-party provider, so this is the future safe choice for which you will find more support in the / sdk libraries (well, at least in the near future).
source share