小弟目前在兩家公司上過班,
第一家公司是使用Webform來自己撰寫註冊登入系統,然後登入成功用Session來存取,感覺上有點粗糙~
第二家公司是用一套用戶管理軟體,然後登入是SSO模式,之後開發的不同系統都是使用用JWT Token openconnectId方式來進行登入。
再加上以前還有接過一些外包網站,我自己是使用.NET提供的功能的Authorize Identity來實現。
由於之前兩家公司的系統都不是自己完成的,再加上還有使用第三方,
所以想請教各位在業界上的各位大大,
還有用過哪一些技術來實現USER系統呢?
Authorize基本上用的是Cookie,
Cookie比較不粗糙嗎?
他是說用法上吧....
Authorize畢竟整合得很好
這讓我想到 香草JS
感謝答覆,
是的~我比較想知道現在業界上還有什麼樣的作法。
因為第一家公司是做內部IT開發人員,這方面的技術上覺得就比較簡單,
就類似這樣Session["user"] = value;就當login用了
然後第二家是科技公司,每次提交代碼都開始需要Code Review了,
剛開始的時候就不斷的被打槍,以前很多不好的寫法都不斷的被糾正過來
加上USER系統這方面確實經驗不足,以後也有可能會碰到
先來瞭解大大們的作法,提升一下自己的水準XD
的確.NET的Authorize很不錯~
但是我擔心未來如果遇到公司不要使用這個作法的時候,
我該如何設計?
登入不喜歡用 session 的話
可以試試 JWT
看起來JWT是在Server跟Client之間傳資料,
我反而覺得Session是最安全的.
不知道有沒有這方面的專家出來說幾句...
你可以去看一下一些框架的作法。
像我常用的Django也是用session去存,不過他是這樣:
cookies存sessionid,伺服器上對照sessionid可以得到session data和expire date,然後session data其實是加密後的user的一些資訊,譬如user的id。
session應該會比JWT安全,不過由於session是不能跨伺服器的,所以才會用JWT來做跨伺服器的認證。
然後純用cookies...你要談安全?別鬧了。
只是.Net的Session有時候會莫名其妙消失...
.Net的Session是自己做一個session services。
aspnet_state.exe這隻。
可能遇到網路擁擠或是出什麼狀況,突然漏掉什麼的。
Django的是存在資料庫,只是你要的話可以改存在redis裡。
原來如此,
總之我後來根據某些人的建議,
自己寫個資料表來存Session記錄了.
基本上是使用自己制作的User系统。
不管是微软.NET提供的Profile Provider还是 .NET Core提供的Authorize Identity 都太过于复杂。
我自己写的软件 www.dotnetcms.org 采用用户登录后,就直接存储在Cookie里,然后配合web.config里 进行身份验证。