2014-07-25 29 views
5

Tôi có một dự án đang diễn ra và tôi đã sử dụng phía máy chủ để xử lý xác thực và ủy quyền của mình thông qua các cookie tên miền cấp tốc/hộ chiếu. kỳ diệu xử lý nhà nước bằng cách gửi cookie sid qua lại.Tôi có thể sử dụng cookie-đơn giản-auth với cookie miền phiên Express/hộ chiếu

Tôi chưa xây dựng được nhiều quyền quản lý xác thực trên máy khách, tôi vừa nhận được dữ liệu người dùng thể hiện sẽ khởi động cho tôi trong chế độ xem máy chủ dưới dạng đối tượng js chung. Tôi muốn xử lý tốt hơn trong ember vì vậy tôi bắt đầu thực hiện ember-đơn giản-auth và tôi đã có thể xử lý các thông tin đăng nhập, nhà nước vv khá tốt ở đó, nhưng nó xuất hiện rằng nó luôn luôn phụ thuộc vào một chiến lược token.

Ngay bây giờ mã của tôi trông như thế này và bạn có thể thấy tôi phải giải quyết lời hứa với đối tượng mã thông báo để làm việc, nhưng chiến lược mong muốn của tôi không yêu cầu mã thông báo.

authenticate: function(credentials) { 
      var _this = this; 
      return new Ember.RSVP.Promise(function(resolve, reject) { 
       Ember.$.ajax({ 
        url: _this.tokenEndpoint, 
        type: 'POST', 
        data: JSON.stringify({ 
         email: credentials.identification, 
         password: credentials.password 
        }), 
        contentType: 'application/json' 
       }).then(function(response) { 

        Ember.run(function() { 
         resolve({ 
          token: response.session.token 
         }); 
        }); 
       }, function(xhr, status, error) { 
        var response = JSON.parse(xhr.responseText); 
        Ember.run(function() { 
         reject(response.error); 
        }); 
       }); 
      }); 
     }, 

Câu hỏi của tôi là có thể Ember-đơn giản-auth được điều chỉnh để làm việc với tốc/cookies miền Hộ chiếu hoặc làm tôi phải thay đổi máy chủ của tôi sử dụng một chiến lược mang hoặc OAuth2 hoặc một cái gì đó.

Cảm ơn bạn.

Trả lời

4

Chính xác đơn giản Ember không yêu cầu mã thông báo. Trong hầu hết các trường hợp, mặc dù "người ủy quyền" cần một mã thông báo để đưa nó vào các yêu cầu truy cập vào máy chủ API của bạn (xem tại đây: http://ember-simple-auth.simplabs.com/ember-simple-auth-api-docs.html#SimpleAuth-Authorizers-Base). Nếu bạn đang sử dụng cookie, bạn không thực sự cần một người ủy quyền mặc dù cookie sẽ được gửi đến máy chủ, cho phép nó xác định người dùng đã được xác thực. Trong trường hợp đó, bạn có thể giải quyết đơn giản với ví dụ: { authenticated: true } từ phương pháp authenticate và kiểm tra các giá trị đó trong phương pháp restore:

restore: function(data) { 
    return new Ember.RSVP.Promise(function(resolve, reject) { 
    if (data.authenticated) { 
     resolve(data); 
    } else { 
     reject(); 
    } 
    }); 
} 
+1

cảm ơn bạn Marco cho câu trả lời của bạn và plugin tuyệt vời. Tôi có nó hoạt động. Tôi sẽ viết một hướng dẫn sớm thôi. – mobetta

+4

@mobetta hướng dẫn sắp ra mắt như thế nào? :) – SuperUberDuper

+0

@mobetta bất kỳ tin tức nào về hướng dẫn này? – charsi

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