BASIC認證方式的“麻煩事”

BASIC方式很簡單,而且也符合REST的無狀態理論。但現在碰到一個新問題,就是我不想在那個很醜陋單調的對話框裏輸入用戶名和密碼,於是我搞了一個 Form來提交用戶名和密碼,當然要使用BASE64造成和那個對話框輸入的一樣的Authorization的Header(Basic xxxxxxxxxx), 這些都很簡單,也能正常通過認證。但是由於我沒有在那個對話框裏輸入用戶名和密碼,所以瀏覽器並不知道我的用戶名和密碼是什麼,從而造成我這種方式不能讓瀏覽器在後續的請求中自動帶上我造的那個Authorization頭,這樣麻煩就來了,我每次都自己造那個頭,然後set到請求的Header裏。而這樣做是非常不方便。各位看誰有辦法解決這個問題?也不知道瀏覽器是怎麼存儲我在那個對話框裏輸入的用戶名和密碼的?

因爲REST提倡傳輸credential, 而不是SESSIONID. 因爲通常是把用戶信息存儲在Session裏的,但這是一種有狀態方式,不是RESTful。 RESTful框架提倡在Request裏傳輸Credential, 而BASIC和DIGEST(Digest認證方式好像也不是真正無狀態,我忘記具體是怎麼樣的了,他好像要在服務器存儲一個Nonce。 並且不是所有瀏覽器支持的)兩種認證方法最適合了。而BASIC方法最簡便,但是如果安全傳輸Credential就成了第二個問題。


繼續研究。。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章