2012-05-20 2 views
7

Bắt đầu học backbone.js và require.js.backbone.js + require.js + xác thực người dùng

Không chắc chắn cách cấu trúc tệp cho ứng dụng web có xác thực người dùng.

Có vẻ nó sẽ chảy như thế này:

  1. Mở ứng dụng init, máy chủ truy vấn để kiểm tra trạng thái phiên auth;
    • Q # 1: nơi tôi nên viết mã phiên 'sau init' này - trong /js/app.js?
    • Q # 2: tôi có nên sử dụng jQuery ajax cho điều này không, hoặc có phương pháp backbone.js tốt hơn (tôi đã thấy các tham chiếu tới get(), fetch(), toJSON() trong các ví dụ) không?
  2. Nếu thành công, lưu trữ dữ liệu xác thực trong mô hình (user_id, tên người dùng, auth_token).
    • Q # 3: Tôi nên bắt đầu mô hình này ở đâu/ở đâu để tôi có thể truy cập dữ liệu đó qua các mô-đun? I E. Tôi sẽ có một cái nhìn để hiển thị mẫu cho 'isLoggedIn.html' sẽ đọc "Hello% username%! Logout". Tôi muốn truy cập trường 'tên người dùng' từ mô hình này. Hiện tại, tôi chỉ thấy cách tạo mô hình mới bằng cách tham chiếu nó trong định nghĩa của khung nhìn [], vì vậy tôi không biết cách truy cập mô hình đã được tạo trong init.
  3. Sẽ sử dụng jQuery $ .cookies để lưu và nhận dữ liệu auth này, vì vậy nếu người dùng rời khỏi trang và trả về, tôi có thể truy vấn máy chủ để kiểm tra phiên thay vì yêu cầu người dùng đăng nhập lại.
    • Q # 4: làm cách nào để đưa plugin jquery.cookies.js vào ứng dụng requirejs này, để sau này tôi có thể sử dụng $ .cookies như bình thường? Tôi có phải thêm plugin này vào danh sách xác định [] không? Tôi có phải thêm nó vào tập tin /js/jquery/loader.js không?

Cảm ơn sự giúp đỡ của bạn.

Chỉnh sửa: Tôi đã sử dụng các tệp từ modular-backbone ví dụ để tạo ứng dụng web của mình. Vì vậy, khi tôi đang nói về /js/app.js và js/router.js, đó là các tập tin tôi đề cập đến.

+1

Đối với Q3: bạn không thể tạo mô hình người dùng và sau đó chuyển nó đến các chế độ xem có liên quan khi bạn xây dựng các chế độ xem đó? –

+0

Ngoài ra, ý của bạn là gì, bạn chỉ có thể tạo ra một mô hình mới khi tham chiếu nó trong định nghĩa? Đăng một đoạn mã của mô hình đó? –

+0

Tôi đang sử dụng cấu trúc từ mô-đun-xương sống. Vì vậy, trong app.js của tôi, tôi đang tạo 'var credentials = new authModel()'. Từ những gì tôi hiểu, sau đó tôi phải truy cập vào 'thông tin đăng nhập' var này trong chế độ xem đăng nhập. Tuy nhiên, thông tin đăng nhập không phải là biến toàn cầu, vì vậy trong thông tin đăng nhập chế độ xem đăng nhập là không có - không thấy bất kỳ dữ liệu nào. – codemonkey613

Trả lời

2

Tôi cũng đang ở trong tình trạng tương tự. Tôi tìm thấy this post và có vẻ như tùy chọn tốt nhất để làm điều gì đó trước khi mọi yêu cầu là sử dụng this solution.

Trước khi truy cập và URL ngoại trừ/đăng nhập, tôi sẽ xác thực bằng cookie hoặc chạy chế độ xem đăng nhập.

Về cách để bao gồm các thư mục khác (jQuery cookie) - chỉ cần sử dụng cơ chế require.js:

  1. Trong chính tập tin 'require.config' của bạn -> 'con đường' thêm vị trí plugin (jqueryCokkie :)
  2. Trong chế độ xem của bạn trong 'define', hãy thêm tên đường dẫn ('jqueryCookie') và chuyển nó vào finction
  3. Tệp .js phải ở trong following structure (Tôi đã cố dán ví dụ mã tại đây, nhưng có vấn đề ...).