ember authorizers ember.js devise ember-simple-auth

ember.js - authorizers - ember js authentication



ember-simple-auth no agrega Token a cada solicitud (1)

Estoy usando Ember 1.8.1, Ember Data 1.0.0-beta.12, Handlebars 1.3.0, jQuery 1.11.1, Ember Simple Auth 0.7.2 y Ember Simple Auth Devise 0.7.2 para mi interfaz. Mi backend está respaldado con Rails, Grape y Devise.

Ahora estoy tratando de construir una autenticación simple. El inicio de sesión funciona muy bien: la aplicación Ember envía credenciales de inicio de sesión a mi API Rails y recupera un token de acceso. Los tokens se escriben en localStorage y la recarga de la página funciona bien. Pero por lo que entiendo Ember Simple Auth ( ver esta demostración ), todas las futuras solicitudes de AJAX se ejecutarán con este token como encabezado de Authorization , pero ese no es el caso.

¿Debo configurar ajaxPrefilter mismo un ajaxPrefilter o debería hacerlo Ember Simple Auth y hay algún error en mi código / Ember Simple Auth?

Actualización 1

Acabo de jugar con la depuración de console.log . Parece que la función de authorize no se activa. Todas las otras funciones se pueden registrar con éxito, excepto authorize .

Actualización 2

Problema resuelto: simplemente olvidé configurar crossOriginWhitelist .


A partir de ESA 1.0 tokens no se agregan automáticamente a cada solicitud.

Si está utilizando el autorizador OAuth2, entonces para agregar información de autorización a las solicitudes de datos Ember haga esto:

// app/adapters/application.js import DS from ''ember-data''; import DataAdapterMixin from ''ember-simple-auth/mixins/data-adapter-mixin''; export default DS.JSONAPIAdapter.extend(DataAdapterMixin, { authorizer: ''authorizer:some'' });

Si también desea hacer una llamada manual de JQuery, entonces algo como esto

this.get(''session'').authorize(''authorizer:oauth2'', (headerName, headerValue) => { Ember.$.ajax({ url: myUrl, beforeSend: function(xhr) { xhr.setRequestHeader(headerName, headerValue); }, method: ''POST'', contentType: ''application/json; charset=utf-8'', dataType: ''json'', data: JSON.stringify({ // stuff }) }); });

luego asegura que la información de autorización se agrega al encabezado.

Lo anterior proviene del archivo léame principal en https://github.com/simplabs/ember-simple-auth , y los documentos de API en http://ember-simple-auth.com/api/