![]() |
if (moduleClass == null) {
// Module not found, send 404 not found response
//response.sendError(HttpServletResponse.SC_NOT_FOUND);
response.sendRedirect("/");
}
|
|
檔案名稱 | 2.jpg |
描述 | 沒有檔案註解存在 |
檔案大小 | 8 Kbytes |
下載次數 | 7 次 |
![]() |
|
|
檔案名稱 | 1.jpg |
描述 | 沒有檔案註解存在 |
檔案大小 | 9 Kbytes |
下載次數 | 8 次 |
![]() |
if (user != null && !user.isDeleted() && (user.getActivationKey() == null || user.isActive())) {
return user;
}
andowson wrote:您的問題應該是因為帳號尚未啟用,所以無法通過登入驗證程序,主要是因為在net.jforum.sso.DefaultLoginAuthenticator這個類別的validateLogin方法裡面對於登入成功的條件是
if (user != null && !user.isDeleted() && (user.getActivationKey() == null || user.isActive())) {
return user;
}
所以雖然透過忘記密碼功能可以成功修改密碼,但是如果您一直沒有去啟用帳號,則仍然無法登入成功。
|
|
檔案名稱 | 未命名.jpg |
描述 | 沒有檔案註解存在 |
檔案大小 | 11 Kbytes |
下載次數 | 7 次 |
![]() |
|
|
檔案名稱 | user_id.jpg |
描述 | 會員ID |
檔案大小 | 18 Kbytes |
下載次數 | 7 次 |
![]() |
andowson wrote:首先,JForum的手動啟用帳號中輸入的是會員ID(整數),不是會員名稱(字串),您的會員ID可以由會員列表前面第一行數字查得(即#那一行)。
第二,驗證碼在當初加入會員時,已發送通知信到您註冊時所使用的電子郵件信箱,如果當初您註冊用的信箱是正確的,您可以到您的信箱中再找找看有沒有那封信。
第三,如果當初註冊時沒收到啟用帳號通知信,目前這個版本的JForum也沒有提供補發驗證碼的功能,如果您比較偏好使用fly這個帳號,有幾種作法:
a.由系統管理者手動啟用帳號,這樣子您會有兩個帳號
b.由系統管理者變更您目前通過認證的這個帳號名稱為fly,將原來的fly改為別的名稱
c.開發補發驗證碼的程式,可以模仿忘記密碼的程式來改,然後您再去申請補發驗證碼,然後再來啟用帳號。目前想到的邏輯如下:
1.在手動啟用帳號的頁面上加入補發驗證碼連結,使用者按下後顯示申請表單畫面
2.使用者同時輸入帳號跟新的電子郵件信箱地址
3.系統檢查該帳號是否已啟用
3.1.如果尚未啟用,則更新該帳號的電子郵件信箱,同時產生新驗證碼,寄送至這個新的電子郵件信箱
3.2如果已啟用,則顯示帳號已啟用畫面(避免帳號被盜用)
4.使用者至其新的電子郵件信箱收信,收到信後再啟用帳號
這幾個作法的優缺點如下:
a方案:優點:簡單,目前系統所提供的功能。缺點:無法確認使用者所填寫之電子郵件信箱是否正確,失去驗證碼機制所要的目的。然後同一個人變成有兩個帳號。
b方案:優點:可以保留目前您這個帳號所發表的文章紀錄。缺點:就是要請系統管理者去處理這件事,還有原先的文章可能會看起來怪怪的。
c方案:優點:可以讓使用者自行處理這件事情。不需要系統管理者介入。也可以回收一些帳號。缺點:就是還要開發程式,需要考量所花的時間成本以及日後與新版本程式相容性的問題。還有就是同一個人還是有兩個帳號。
目前,我比較傾向使用b方案。不知道您是否同意這樣的處理方式?
andowson wrote:已修改為fly。也希望再見到您發表新文章。