2017-02-11 58 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... 

由於代碼是在查詢字符串傳遞,而不是片段,您的服務器端代碼就能看到它。