2013-04-14 33 views
16

Tôi muốn tắt đăng ký từ ứng dụng Meteor của mình. Tôi đang sử dụng gói thông minh tài khoản-ui.Vô hiệu hóa đăng ký sao băng

Tôi cố gắng này:

Accounts.config({ 
    var forbidClientAccountCreation = true; 
}) 

nhưng tai nạn máy chủ ứng dụng của tôi. Làm thế nào tôi có thể sửa lỗi này?

Điều này đang sử dụng một tệp JS phổ quát, không phải một tệp cho máy khách và một cho máy chủ.

Trả lời

41

Accounts.config lấy một tham số là javascript hashmap. Bạn nên viết nó một cách chính xác:

Accounts.config({ 
    forbidClientAccountCreation : true 
}); 
+1

Ngoài ra, về vấn đề bảo mật này. Tôi không thể chỉnh sửa tệp JS và nhận được một tài khoản? –

+0

Ý bạn là, trên máy khách? – mquandalle

+0

Vâng, tôi không muốn mọi người chỉnh sửa và đăng ký một cách kỳ diệu: \ –

1

Chỉ cần gõ tiếp theo trên giao diện điều khiển:

Accounts._loginButtonsSession.set('inSignupFlow', true); 

và bạn sẽ thấy những mẫu đăng ký một lần nữa.

Những gì tôi đã làm là để ngăn chặn xác nhận của việc tạo ra người dùng trên máy chủ như sau:

Accounts.validateNewUser(function (user) { 
    return false 
}); 
18

Tôi vừa chạy vào này và các câu trả lời ở đây không hoàn toàn rõ ràng. Câu trả lời được chấp nhận hoạt động cho OP vì anh ấy sử dụng một tệp JS duy nhất, nhưng nếu không, hãy đặt mã sau vào tệp bên ngoài các thư mục clientserver.

Accounts.config({ 
    forbidClientAccountCreation : true 
}); 

Lý do là nó chạy trên máy khách sẽ kích hoạt tính năng accounts-ui cất giấu những "Đăng ký" liên kết và văn bản, và chạy nó trên máy chủ thực sự sẽ cấm tài khoản người dùng mới được tạo ra.

Nếu bạn chỉ chạy ứng dụng trên máy khách, các liên kết và văn bản sẽ bị ẩn nhưng bạn vẫn có thể tạo tài khoản thông qua bảng điều khiển của trình duyệt.

Nếu bạn chỉ chạy trên máy chủ, việc tạo tài khoản sẽ luôn thất bại nhưng bạn vẫn sẽ nhận được liên kết và văn bản được liên kết.

Một vị trí tốt cho mã nằm trong thư mục lib, bởi vì bất kỳ thứ gì trong thư mục đó sẽ được xử lý bởi Meteor trên máy chủ và máy khách cũng như trước bất kỳ thư mục nào khác. Ví dụ: bạn có thể đặt nó trong lib/environment.js.

+0

tôi đặt mã trong thư mục/config nhưng nhận được 'Lỗi: Không thể đặt' forbidClientAccountCreation 'nhiều hơn một lần ' – Gobliins

+1

Nếu bạn đang sử dụng' useraccounts', bạn phải gọi phương thức riêng của chúng, vì chúng đã gọi 'Accounts.config' nội bộ, xem https://github.com/meteor-useraccounts/core/issues/25 – ianmartorell

+0

Tôi đang sử dụng quyền này nhưng bây giờ tôi nhận được vấn đề này:' Lỗi: đường dẫn đăng ký được cấu hình nhưng forbidClientAccountCreation được đặt thành true!'làm thế nào tôi có thể ngăn chặn để thiết lập tuyến đường này và chỉ thiết lập tuyến đường này khi clientaccountcreation được thiết lập để sai? – Gobliins

Các vấn đề liên quan