Какие дополнительные ценности поддерживают Stack Exchange OpenID?
-
11-12-2019 - |
Вопрос
Я пытаюсь получить username / display name
, но я понятия не имею, каковы поддерживаемые значения.Я получил генеракодицетагкод и генеракодицетагкод, но я не знаю, что возвращает email
.
Есть ли документация или что-то в этом?
Мой текущий код:
public class StackExchangeOpenID : OpenIdClient
{
public StackExchangeOpenID()
: base("stackexchange", "https://openid.stackexchange.com")
{
}
protected override Dictionary<string, string> GetExtraData(IAuthenticationResponse response)
{
FetchResponse fetchResponse = response.GetExtension<FetchResponse>();
if (fetchResponse != null)
{
var extraData = new Dictionary<string, string>();
extraData.Add("email", fetchResponse.GetAttributeValue(WellKnownAttributes.Contact.Email));
extraData.Add("name", fetchResponse.GetAttributeValue(WellKnownAttributes.Name.FullName));
// returned value: null
//extraData.Add("username", fetchResponse.GetAttributeValue(WellKnownAttributes.Name.Alias));
return extraData;
}
return null;
}
protected override void OnBeforeSendingAuthenticationRequest(IAuthenticationRequest request)
{
var fetchRequest = new FetchRequest();
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.FullName);
// returned value: null
//fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.Alias);
request.AddExtension(fetchRequest);
}
}
. Решение
Какая у вас стрелка указывает на их не отображаемое имя (StackID не имеет понятия отображения, ваш логин - это ваш адрес электронной почты), но необязательный «идентификатор тщеславия».
Например:
дает мне тщеславие OpenID of https://OpeniD.stackexchange.com/kevin.montroseA>.Это просто проще запомнить псевдоним для полагающихся сторон, требующих ручной ввода URL-адресов OpenID.
Email и Real Name / Full Name - это единственные атрибуты StackID, поддерживает запрос на запрос, и вернется как через расширения SREG, либо AX ( Как видно в коде ).