Сегодня я пытался интегрировать свою токен-аутентификацию с остальной частью моего веб-сайта, но когда я тестировал код, это не сработало. Я знаю, что это работало раньше, и я ничего не менял в этом, так что же произошло?
Помимо Твиттера, у меня такая же проблема с моим кодом для аутентификации Facebook и LinkedIn, ведь обе ведьмы также работали нормально раньше ???
Начиная с самого начала, я перешел на вики-страницу Tweetinvi: https://github.com/linvi/tweetinvi/wiki/Authentication И я скопировал код для его тестирования и отладки.
Сначала у меня возникла проблема с тем, что (токен = новый AuthenticationToken) в ValidateTwitterAuth ActionResult был нулевым, но я исправил это, следуя инструкции, которая сработала. Но затем следующая проблема заключалась в том, что UserCredentials ITwitterCredentials имеет значение null, и я понятия не имею, почему?
Как это исправить? Является ли причина этой проблемы той же причиной, которая мешает работе других моих обработчиков токенов?
Мой код:
(Часть домашнего контроллера)
(Я удалил app-id и app-secret, но я проверил их, так что проблема не в них)
private IAuthenticationContext _authenticationContext;
// Step 1 : Redirect user to go on Twitter.com to authenticate
public ActionResult TwitterAuth()
{
var appCreds = new ConsumerCredentials("APP-ID", "APP-SECRET");
// Specify the url you want the user to be redirected to
var redirectURL = "http://" + Request.Url.Authority +"/Home/ValidateTwitterAuth";
_authenticationContext = AuthFlow.InitAuthentication(appCreds, redirectURL);
return new RedirectResult(_authenticationContext.AuthorizationURL);
}
public ActionResult ValidateTwitterAuth()
{
var token = new AuthenticationToken()
{
AuthorizationKey = "APP-ID",
AuthorizationSecret = "APP-SECRET",
ConsumerCredentials = new ConsumerCredentials("APP-ID", "APP-SECRET")
};
// Get some information back from the URL
var verifierCode = Request.Params.Get("oauth_verifier");
// Create the user credentials
ITwitterCredentials userCreds = AuthFlow.CreateCredentialsFromVerifierCode(verifierCode, token);
// Do whatever you want with the user now!
ViewBag.User = Tweetinvi.User.GetAuthenticatedUser(userCreds);
string access_token = userCreds.AccessToken;
string access_token_secret = userCreds.AccessTokenSecret;
return RedirectToAction("Index", "Home");
}
заранее спасибо