C#sdk。 OAuth对话框在hashstring中返回令牌

时间:2011-05-13 00:48:18

标签: c# facebook

为什么从facebook OAuth对话框重定向请求权限时,我在哈希字符串中获取访问令牌?

这是我用来构建facebook OAuth对话框的代码:

var parameters = new Dictionary<string, object>
                    {
                        { "response_type", "code_and_token" },
                        { "redirect_uri", "http://localhost:3434/"},
                        { "scope", string.Join(",", scopes)}
                    };

            return oauth.GetLoginUrl(parameters).AbsoluteUri;

它重定向到:

http://localhost:3434/?name=asdf%3F#access_token=162925373763120|2.qLDBCyZRe1gGOvrpjLIouQ__.3600.1305252000.1-100000956820295|Hx6tBpndm5Dm1BAXVxjo7QcoxLs&expires_in=5998&code=jTu2wOzMadW0xRm47LgQZlMiu2cWqIzG20BkGNov7Rs.eyJpdiI6IldjRjVaUTF2RjgzUXJsWjNGR1dnWHcifQ.1nmIBbttrglCioBC3uUQeQ_2btjEfj7acprwzc4E12Ap36GxUoAoVwIqyQFF91ghKi_whzSltd_VVr4nMbyGv0T3wvQ-hLfxhS4F3saZv94ubzDq_gKcvdG9BXMZG77FlY1QP7SLOpdIP4yh8mNWEw

如何在OAuth对话框重定向后检索access_token?

1 个答案:

答案 0 :(得分:0)

编辑 - 与CBroe的回答

问题在于这一行:
{“response_type”,“code_and_token”}

它只能是:
{“response_type”,“令牌”} 设置为token时,access_token将在 hashstring 中传回,这意味着它只能用于javascript。

{“response_type”,“code”} 设置为code时,access_code将在querystring中传回。然后使用此查询字符串与facebook交换access_token。 (如果response_type设置为“token”

,则与hashstring检索的access_token相同