(pub login) Allow userinfo to not contain a name (#4635)

diff --git a/lib/src/command/login.dart b/lib/src/command/login.dart
index 04e765b..0a505b6 100644
--- a/lib/src/command/login.dart
+++ b/lib/src/command/login.dart
@@ -64,7 +64,9 @@
       try {
         switch (json.decode(userInfoRequest.body)) {
           case {'name': final String? name, 'email': final String email}:
-            return _UserInfo(name, email);
+            return _UserInfo(name: name, email: email);
+          case {'email': final String email}:
+            return _UserInfo(name: null, email: email);
           default:
             log.fine(
               'Bad response from $userInfoEndpoint: ${userInfoRequest.body}',
@@ -84,7 +86,7 @@
 class _UserInfo {
   final String? name;
   final String email;
-  _UserInfo(this.name, this.email);
+  _UserInfo({required this.name, required this.email});
   @override
   String toString() => ['<$email>', name ?? ''].join(' ');
 }