Точно так же, как вы пытались - добавив 'contact/email'
к $openid->required
(или optional
).
Если провайдер не возвращает электронное письмо - это нормально, это не обязательно. Это не означает, что провайдер не поддерживает OpenID или не поддерживает SREG / AX (расширения OpenID, используемые для получения электронной почты). Это просто означает, что он решил не отправлять вам адрес электронной почты.
Так что мой совет: прекратите в зависимости от этого.
OpenID - это децентрализованный протокол, поэтому есть много провайдеров, которые не будут возвращать электронную почту и другие данные, и вам все равно придется их поддерживать. Итак, еще раз: провайдер может вернуть любые данные, которые он хочет, независимо от того, что вы просили, поэтому вы не можете зависеть от того, будут ли они возвращены.