iT邦幫忙

0

node.js 帳號系統

  • 分享至 

  • xImage

各位好 先說明目前環境:
使用Node.js開發網站, 使用MongoDB存取資料

現在有帳號資料庫的需求, 像是新增刪除修改找尋會員等動作, 目前有找到一些module, 像是ldapjsLDAP,但不曉得這些module是否符合需求

我的疑問是, 如果使用module新增成員, 那關掉server後資料還在嗎?
另外有找到一個OpenLDAP, 看起來是另外架設一個server, 然後再與我網站的server相連?

這方面還是新手 抱歉問題有點亂

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2019-10-24 15:52:55 檢舉
LDAP跟會員系統沒關係...會員系統應該是要自己設計啦
阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 15:55:22 檢舉
您好, 以下是搜尋結果
LDAP (Lightweight Directory Access Protocol) 是一種輕量的目綠服務協定,像是通訊錄一樣記錄人員資訊,可以拿來做帳號整合、驗證,LDAP 目錄服務通常有層級結構,像是公司組織階層。

之前有看過在Linux架LDAP server, 所以是有關係的吧?
dragonH iT邦超人 5 級 ‧ 2019-10-24 16:00:38 檢舉
像是通訊錄一樣 ≠ 通訊錄

而且他的描述也沒說可以拿來開發會員系統阿XD

總之你需要的是資料庫

e.g. mongodb 或者 mysql

LDAP 你用不到
fillano iT邦超人 1 級 ‧ 2019-10-24 16:03:09 檢舉
如果是員工系統,那還有可能,不過LDAP/AD通常是內部系統整合、單一籤入等方面的應用,我想你所說的會員系統不是這樣的東西。
阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:14:17 檢舉
有點不懂怎分員工系統與會員系統..
我每筆包含這些:姓名,公司, 密碼, 權限..
待使用者從網頁登入後, 依照權限不同會有不同等級的操作
---------------
當然我知道一般資料庫可以做到這些, 但LDAP部分是我參考之前看過的, 也是來存放員工資料, 所以..感覺兩種都符合需求?
dragonH iT邦超人 5 級 ‧ 2019-10-24 16:24:32 檢舉
>有點不懂怎分員工系統與會員系統..
我每筆包含這些:姓名,公司, 密碼, 權限..
待使用者從網頁登入後, 依照權限不同會有不同等級的操作

基本上

你看到有這種功能的網站

大概 99% 都不是用 LDAP
阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:27:06 檢舉
那我大概需要找足夠的理由來說服了..
另外請問像是"密碼"在資料庫中是如何儲存的?不會是明文吧
以及從網頁端要登入時的封包是不是需要加密?
dragonH iT邦超人 5 級 ‧ 2019-10-24 16:32:24 檢舉
>另外請問像是"密碼"在資料庫中是如何儲存的

密碼通常會將加密過後的結果存在資料庫

就算你打開資料庫看到加密過後的結果

也沒辦法逆推

>網頁端要登入時的封包是不是需要加密

比起加密

更重要的是你後端程式所寫的權限控管
阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:42:04 檢舉
恩恩..後續做到這部分有問題再詢問
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
海綿寶寶
iT邦大神 1 級 ‧ 2019-10-24 22:16:40
最佳解答

我的疑問是, 如果使用module新增成員, 那關掉server後資料還在嗎?

還在

另外有找到一個OpenLDAP, 看起來是另外架設一個server, 然後再與我網站的server相連?

正確

你可以架一套 OpenLDAP
再使用 LDAP module 當成你的會員系統使用
會有兩個情形:
1.順利
2.有些你想要的會員系統的功能 LDAP 做不到
到時侯再說囉

選我正解

看更多先前的回應...收起先前的回應...
阿薩姆 iT邦新手 4 級 ‧ 2019-10-25 09:22:17 檢舉

海綿寶寶您好~
我簡單複述一下您的回答:
先以OpenLDAP架設LDAP server, 在Node.js使用相關module對LDAP server存取, 也就是當使用者在前端操作時(新增, 刪除, 修改, 查詢), 透過後端與LDAP連線, 取得資料後再進行對應的操作。
大概是這樣的流程??
想另外請較, 當我後端與LDAP連線時, 是否能採取加密連線?像是TLS?
Thanks

1.LDAP 主要用在「登入」時檢核使用者身分(可以比喻成門禁系統),在「新增、刪除、修改、查詢」時比較用不到
2.可以,OpenLDAP 可以搭配 SSL/TLS

阿薩姆 iT邦新手 4 級 ‧ 2019-10-25 09:54:32 檢舉

謝謝回覆
確實之前在使用時也是用來檢核使用者身分, 那如果想藉由後端連接LDAP新增刪除使用者, 是可以達到的?只是比較少這樣做?

1.可以達到(新增刪除使用者)
2.若要使用LDAP做為門禁系統就一定得這麼做

前面看你寫「使用LDAP是老板的意思」
我想先提醒你
如果老板在會議中,在白板上畫了一個長方形,裡面寫「會員系統」
然後就交待你去找 LDAP,彷彿「安裝了LDAP就等於做好了會員系統」
那你就得小心了
事情沒有那麼單純

阿薩姆 iT邦新手 4 級 ‧ 2019-10-25 10:17:35 檢舉

您是指還有很多要注意的細節?
我這邊寫的比較簡要, 前陣子是有先survey稍微練習過, 只是這次要在windows10環境就比較不清楚如何架設

還是前輩您有什麼建議要提醒? XD

2
dragonH
iT邦超人 5 級 ‧ 2019-10-24 15:27:32

目前有找到一些module, 像是ldapjs、LDAP,但不曉得這些module是否符合需求

我沒用過這些 lib

不知道他們是做啥的

不過

既然都決定用 mongodb 當 database

應該是找能夠連 mongodb 的 lib 吧

我個人是用 monk

看更多先前的回應...收起先前的回應...
阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 15:52:05 檢舉

嗨 你好
初步servey monk, 這是用來連結server與mongoDB的?
所以您的意思是要把會員系統也架在mongoDB裡?

dragonH iT邦超人 5 級 ‧ 2019-10-24 15:53:49 檢舉

wcliao_public

是將會員資料寫進 mongodb

不然你的 mongodb 是要拿來做什麼用的/images/emoticon/emoticon17.gif

fillano iT邦超人 1 級 ‧ 2019-10-24 15:55:10 檢舉

module能做的事情,應該不會包括「會員系統的設計」,這需要你自己來。

阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:16:20 檢舉

@dragonH
目前是用來存放除了成員以外的資料
@fillano
看起來這些module應該是用來"存取"的?

dragonH iT邦超人 5 級 ‧ 2019-10-24 16:20:18 檢舉

wcliao_public

可以問一下會員資料不寫在資料庫的原因嗎

阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:24:35 檢舉

會先找LDAP相關是老闆提出的想法, 目前已知Linux可架設LDAP server, 我本身有在Windows Server OS架設過, 但在Windows 10環境下還沒找到方法

dragonH iT邦超人 5 級 ‧ 2019-10-24 16:30:13 檢舉

可能你們的需求會需要 LDAP server 吧

不過就大多數狀況來說

做一個會員系統

應該很少人會想到 LDAP server

阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:39:33 檢舉

這個我再思考一下..
(想請問怎麼標記啊?)

dragonH iT邦超人 5 級 ‧ 2019-10-24 16:42:39 檢舉

wcliao_public

"預覽" 旁邊有個 人型圖案

不過你本文沒辦法用 markdwon 編輯器

也就無法標記

fillano iT邦超人 1 級 ‧ 2019-10-24 16:48:06 檢舉

如果有多個系統要整合,透過LDAP做權限控管、單一簽入等那還算合理。就一個會員系統,那不知道你要LDAP做什麼。然後其他資料你還是得存在資料庫而不是LDAP...如果單純要做單一簽入,其實還可以考慮用OAuth。

阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:48:16 檢舉

dragonH

Thanks!

dragonH iT邦超人 5 級 ‧ 2019-10-24 16:52:24 檢舉

fillano

他應該是對 LDAP 有什麼誤會XD /images/emoticon/emoticon37.gif

阿薩姆 iT邦新手 4 級 ‧ 2019-10-24 16:56:48 檢舉

fillano
想請問多個系統整合有沒有例子?

fillano iT邦超人 1 級 ‧ 2019-10-24 17:56:26 檢舉

其實google一下應該很多啦,不過台灣一般公司內使用AD可能比較多

1
HAO
iT邦研究生 1 級 ‧ 2019-10-24 17:56:42

給你一點方向:

  • 會員驗證機制用 Passport.js
  • 然後與 MongoDB 溝通的函式庫用 mongoose
  • 看要不要用個 jsonwebtoken 來實作token
  • 最後,密碼存在資料庫的時候最好搭配 crypto 來加密,可以用 sha256
1
froce
iT邦大師 1 級 ‧ 2019-10-25 12:07:14

我講一下我公司的應用情景你就知道LDAP和你要的完全不同了。

我公司每個應用系統都跟windows ad結合,新人來我MIS都要先幫新人在AD上建檔,建完後新人登錄時會先去檢查ad上有沒有這個帳號、密碼對不對。然後再從ad上取得他的組別...等等的資訊。
ad也沒有直接和我應用系統的資料庫結合,我得自己寫程式在人登錄的時候去更新...

你覺得這應用在你的會員系統合適嗎?

LDAP通常都是用在公司內部的帳號控管,用在外部會員系統...是可以啦,問題是只是脫褲子放屁,根本用不到他其他的功能就算了,還沒比較好用。

阿薩姆 iT邦新手 4 級 ‧ 2019-10-25 13:33:22 檢舉

謝謝回覆~
不過我這裡雖然寫"會員系統"(我改標題為帳號系統了), 不過登入時在驗證帳號密碼後確實也會去取得他的部門.權限等等...
雖然目前看起來確實是脫褲子放屁..會再斟酌看看
Thanks

我要發表回答

立即登入回答