1. 問題描述跨域
權限中使用session,通常是用來存放用戶名和密碼,下面以報表開發工具FineReport爲例,分兩種狀況介紹用戶名和密碼的保存:瀏覽器
2. 同一應用下session服務器
因爲session中可以保存key,所以在權限中若是報表工程與本身的工程在一個應用下面,即session相同,此時將用戶名與密碼存放於session中,在瀏覽器端將外界輸入的用戶名和密碼保存至session,報表服務器即可以得到用戶名與密碼,去相應的地址匹配,匹配成功,經過權限關卡,匹配失敗,跳轉登陸頁面。session
3. 不一樣應用下session工具
不在同一個應用環境下,session不能直接獲取到,要實現單點登陸的效果,在項目登錄界面把用戶名和密碼傳給報表服務器經過fs_load&cmd=sso方法進行驗證,驗證成功則把用戶名和密碼及角色以session方式保存在報表服務器端,此時的應用session和報表session,不是同一個session,相對獨立,互不影響。開發工具
跨域項目和跨語言項目都屬於不一樣應用下的工程,此時session是不能共用,不是同一個session,因此在註銷用戶的同時觸發一下報表方法:/WebReport/ReportServer?op=fs_load&cmd=ssout,則可以使用戶session同步的效果。權限中session的定義及註銷可參考Finereport幫助文檔:跨域單點登陸。spa