Xử lý banner khi logout
-
Mình có xây dựng logout = ajax trong angular, khi user log out thì sẽ raise 1 banner là log out thành công, lúc logout xong mình chọn login lại thì cái banner đó vẫn còn @@.
-
Mình dùng ui.router để chia layout, banner logout mình để ở main layout có controler là layoutctrl ( trong đây gọi cái message log out thành công từ node ), button login thì trỏ tới login layout có controler là loginctrl.
-
Minh có thử xây dựng 1 api trong loginctrl để gọi server-side để reset cái message logout nhưng vẫn ko được, nó vẫn chạy cái ajax trên @@
-
-
@Nhật-Nguyễn Không biết bạn tự viết cái
banner
này hay sử dụng thư viện ngoài?
Có 1 thư viện dựng sẵn này bạn thử xem. Mình dùng nó thấy ok AngularJS-Toaster
-
@Vũ Phía server mình tạo 1 biến error_msg, khi nào logout thì nó gửi cái biến đó vào view thông qua ajax nhu trên mình nói,
- Mình có đặt log trong hàm reset trên để check, thì nó có reset biến error_msg phía server nhưng phía client ko reset, 2 hàm tạo error_msg và reset error_msg là 2 hàm riêng
-
@Nhật-Nguyễn Vấn đề là cái
banner
của bạn nó vẫn còn đó. Mình nghĩ là sau khi hiển thị banner đó thì bạn cần ẩn nó đi (sau 3 giây chẳng hạn).Còn bạn đặt biến client, hay server thì không quan trọng. Có khi bạn xử lý mã lỗi đăng nhập 401, 403 ở client có khi hợp lý hơn việc gửi 1 biến vào view thông qua ajax (mình thấy đoạn: gửi biến vào view thông qua ajax không hợp lý lắm) ?
-
@Vũ Bạn có thể hướng dẫn mình cái 401, cấu trúc app của mình
- Trang layout có navbar (button logout,...) với controller là layoutctrl ( = angular)
- Các trang login, register, home sẽ dùng chung cái layout
- Code mình attach
https://jsfiddle.net/nhatndm1193/3271mxa1/
-
@Nhật-Nguyễn Bạn tham khảo 1 app về xác thực này nhé. Chứ xem code của bạn mình thấy hơi bị rối
Github: https://github.com/fnakstad/angular-client-side-auth
Demo: http://angular-client-side-auth.herokuapp.com
Tutorial: http://frederiknakstad.com/2013/01/21/authentication-in-single-page-applications-with-angular-js/
-
Mình xác thực bằng passport thì ok, sang đây làm chay dùng angular để router mà nó bị vậy. À cho mình hỏi, mình dùng angular với handlebar được ko vậy?
-
@Nhật-Nguyễn Thì code client của bạn có vấn đề mà
Còn
handlebar
thì mình ko biết rồi :))
-
@vũ mình biết phía client có vấn đề mà làm hôm qua giờ ko được, nên mình set timeout cho nó luôn :D, router mình dùng ui-router của Angular chung router của express được không bạn?
-
@Nhật-Nguyễn Hai thằng này độc lập. Như phương án hiện tại của bạn thì ok nhé!
Nhân tiện đây giới thiệu với bạn mình có làm 1 khóa học AngularJS/NodeJS trên Edumall.vn, http://bit.ly/khoahoc_angularJS. Nếu bạn quan tâm thì đăng ký tham gia nhé.
-
@Nhật-Nguyễn Mình nghĩ dùng chung được , chỉ cần bật mode HTML 5 lên thôi