Oauth (Tweetinvi)-AuthFlow.CreateCredentialsFromVerifierCode(verifierCode,令牌);返回空值

Oauth (Tweetinvi)-AuthFlow.CreateCredentialsFromVerifierCode(verifierCode,令牌);返回空值,oauth,asp.net-mvc-5,twitter-oauth,nullreferenceexception,tweetinvi,Oauth,Asp.net Mvc 5,Twitter Oauth,Nullreferenceexception,Tweetinvi,今天,我试图将我的令牌身份验证与我网站的其余部分集成,但当我测试代码时,它不起作用。我知道它以前是有效的,我没有改变任何事情,所以发生了什么 除了Twitter,我的Facebook和LinkedIn认证代码也有同样的问题,witch之前也运行良好 从一开始,我就进入了Tweetinvi的wiki页面: 我复制了测试和调试它的代码 首先,我遇到了ValidateWriteRauth ActionResult中的(token=new AuthenticationToken)为null的问题,但我修

今天,我试图将我的令牌身份验证与我网站的其余部分集成,但当我测试代码时,它不起作用。我知道它以前是有效的,我没有改变任何事情,所以发生了什么

除了Twitter,我的Facebook和LinkedIn认证代码也有同样的问题,witch之前也运行良好

从一开始,我就进入了Tweetinvi的wiki页面: 我复制了测试和调试它的代码

首先,我遇到了ValidateWriteRauth ActionResult中的(token=new AuthenticationToken)为null的问题,但我修复了按照指令执行的问题。但是接下来的问题是,ITwitterCredentials userCredsnull,我不知道为什么

我该如何解决这个问题? 此问题的原因是否与阻止其他令牌处理程序工作的原因相同

我的代码:

(家庭控制器的一部分)

(我确实删除了app id和app secret,但是我检查了它们,所以它们不是问题所在)


提前感谢

您的问题来自以下方面:

var token = new AuthenticationToken()
{
    AuthorizationKey = "APP-ID",
    AuthorizationSecret = "APP-SECRET",
};
AuthorizationKey
AuthorizationSecret
不是
APP\u ID
APP\u SECRET

您应该从在
ActionResult TwitterAuth()中创建的
\u authenticationContext
中获取这些信息

有多种方法存储此信息,以便在回调完成时可以访问它

如果您不使用负载平衡,我建议使用以下使用url参数的代码:

public ActionResult TwitterAuth()
{
    var appCreds = new ConsumerCredentials(MyCredentials.CONSUMER_KEY, MyCredentials.CONSUMER_SECRET);
    var redirectURL = "http://" + Request.Url.Authority + "/Home/ValidateTwitterAuth";
    var authenticationContext = AuthFlow.InitAuthentication(appCreds, redirectURL);

    return new RedirectResult(authenticationContext.AuthorizationURL);
}

public ActionResult ValidateTwitterAuth()
{
    var verifierCode = Request.Params.Get("oauth_verifier");
    var authorizationId = Request.Params.Get("authorization_id");

    if (verifierCode != null)
    {
        var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(verifierCode, authorizationId);
        var user = Tweetinvi.User.GetAuthenticatedUser(userCreds);

        ViewBag.User = user;
    }

    return View();
}

您可以在此处阅读更多有关此主题的信息:。

非常感谢您,我的令牌处理程序突然停止工作,我真的感到很难过。但现在是一个倒数,两个倒数:)
public ActionResult TwitterAuth()
{
    var appCreds = new ConsumerCredentials(MyCredentials.CONSUMER_KEY, MyCredentials.CONSUMER_SECRET);
    var redirectURL = "http://" + Request.Url.Authority + "/Home/ValidateTwitterAuth";
    var authenticationContext = AuthFlow.InitAuthentication(appCreds, redirectURL);

    return new RedirectResult(authenticationContext.AuthorizationURL);
}

public ActionResult ValidateTwitterAuth()
{
    var verifierCode = Request.Params.Get("oauth_verifier");
    var authorizationId = Request.Params.Get("authorization_id");

    if (verifierCode != null)
    {
        var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(verifierCode, authorizationId);
        var user = Tweetinvi.User.GetAuthenticatedUser(userCreds);

        ViewBag.User = user;
    }

    return View();
}