Можно ли добавить утверждения в токен на предъявителя, чтобы получить доступ к этим утверждениям в будущем?Это токен на предъявителя, который выдается веб-API.Он содержится в URL-адресе, который отображается при перенаправлении в процессе авторизации приложения Twitter.
Причина, по которой я спрашиваю, заключается в том, что я пытаюсь сохранить Twitter AccessToken и AccessTokenSecret в качестве дополнительных утверждений.Я делаю это так, чтобы я мог получить доступ к этим утверждениям, когда я получаю доступ к методу GetUserInfo, используя токен Bearer.Из того, что я могу сказать, это невозможно.
Кажется, что мне, возможно, придется хранить их в SQL и получать их, используя имя пользователя Twitter, когда я получаю доступ к GetUserInfo.Когда я получаю доступ к GetUserInfo, я получаю Twitter userName и userId, но не могу получить AccessToken и AccessTokenSecret.Возможно, мне удастся сохранить context.ScreenName, context.AccessToken и context.AccessTokenSecret в SQL с использованием общедоступного метода проверки подлинности задачи переопределения (контекст TwitterAuthenticatedContext).
Мне нужны AccessToken и AccessTokenSecret, поэтому я могу вызвать этоКонечная точка Twitter для получения адреса электронной почты пользователя.
https://api.twitter.com/1.1/account/verify_credentials.json
На этом этапе мой пользователь не вошел в систему, и его локальная учетная запись не была создана.Я пытаюсь получить адрес электронной почты от Twitter, чтобы создать свою локальную учетную запись.
ОБНОВЛЕНИЕ 1
Вот некоторый код.Я вызываю этот метод из провайдера в TwitterAuthenticationOptions в Startup.Auth так.Как видите, я добавляю утверждения к контексту в Authenticated.
Provider = new TwitterAuthProvider(),
public class TwitterAuthProvider : TwitterAuthenticationProvider
{
public string XmlSchemaString { get; private set; }
public override Task Authenticated(TwitterAuthenticatedContext context)
{
context.Identity.AddClaim(new Claim("access_token", context.AccessToken, XmlSchemaString, "Twitter"));
context.Identity.AddClaim(new Claim("access_token_secret", context.AccessTokenSecret, XmlSchemaString, "Twitter"));
context.Identity.AddClaim(new Claim("user_name", context.ScreenName, XmlSchemaString, "Twitter"));
context.Identity.AddClaim(new Claim("account_type", "Twitter", XmlSchemaString, "Twitter"));
return Task.FromResult<object>(null);
}
}
Любая помощь очень ценится.Заранее спасибо!