加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在asp.net mvc Twitter OAuth2登录后获取oauth凭据

发布时间:2020-12-15 07:51:45 所属栏目:百科 来源:网络整理
导读:在测试 build-in MVC 5 OAuth2/OpenID providers之后,我能够创建一个网站,允许我使用我的Twitter凭据进行身份验证. 我现在遇到的问题是,我还想在用户成功通过身份验证后,在网址中存储令牌(oauth_token oauth_verifier)Twitter帖子.我需要这些令牌,所以我可以
在测试 build-in MVC 5 OAuth2/OpenID providers之后,我能够创建一个网站,允许我使用我的Twitter凭据进行身份验证.

我现在遇到的问题是,我还想在用户成功通过身份验证后,在网址中存储令牌(oauth_token& oauth_verifier)Twitter帖子.我需要这些令牌,所以我可以允许用户直接从我的网站发布详细信息到他们的Twitter帐户.

在Startup.Auth.cs中设置了TwitterAuthenticationOptions(见下文)后,我确实发现我所关注的令牌可以在上下文中找到(((context.Response.Context).Request).QueryString)但是解析这似乎是一个难看的解决方案.

var tw = new TwitterAuthenticationOptions {
       ConsumerKey = "SecretKey",ConsumerSecret = "SecretSecret",SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,Provider = new TwitterAuthenticationProvider() {
            OnAuthenticated = (context) => {
                context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token",context.AccessToken,XmlSchemaString,"Twitter"));
                return Task.FromResult(0);
                        }
            }

  };

  app.UseTwitterAuthentication(tw);

如何优雅地实施?对于Facebook我找到了一个实际检索其他信息的解决方案,这感觉类似……

get-more-information-from-social-providers-used-in-the-vs-2013-project-templates

解决方法

您可以使用Query而不是QueryString,然后使用Get方法从查询字符串中检索值.
context.Response.Context.Request.Query.Get("oauth_verifier");
context.Response.Context.Request.Query.Get("oauth_token"); or context.AccessToken

需要注意的其他方法是你不需要oauth_verifer来发布数据. Look here at required headers.我建议你使用libraries listended here之一与Twitter互动.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读