2017-02-11 26 views
1

我尝试创建简单的OAuthHandler。 在我的请求(使用implicit flow)后,服务器向我的页面发送请求并附带授权码。但在服务器的查询字符串中,所有参数都以散列(#)开头?处理查询字符串中的散列(#)

在方法HandleRemoteAuthenticateAsync中,我试图解析查询字符串,但没有一个属性包含授权代码或类似的东西。

如何处理查询字符串中的散列?

+0

A#不是查询字符串的一部分,它是一个文档片段,它只能出现在查询字符串之后,而不是它。什么服务器发送什么?显示网址? – Joppe

+1

任何包含散列的内容都不会传递给您的服务器。你需要先对URL进行编码。 – DavidG

+0

https://vk.com/dev/implicit_flow_user –

回答

0

由于若佩和大卫在评论中提到的,哈希(#)之后什么是片段的一部分,是浏览器发送到服务器。这就是为什么你的服务器代码看不到它。

隐式流程适用于JavaScript客户端,而不适用于Web服务器。您需要改为authorization code flow。重定向的样子:

REDIRECT_URI?code=7a6fa... 

由于代码是在查询字符串传递,而不是片段,您的服务器端代码就能看到它。