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/