0

J'utilise une pile composée de Rails with Grape (pour API stuff) et de Devise (pour l'utilisateur), et Ember avec Ember CLI et Ember Simple Auth. Je veux implémenter l'autorisation en utilisant le DeviseAuthenticator exposé par Simple Auth. Mon contrôleur de connexion ressemble à ceci:Ember Simple Auth + Devise throws 405

// app/controllers/login.js 

import Ember from 'ember' 

export default Ember.Controller.extend({ 
    session: Ember.inject.service('session'), 

    actions: { 
    authenticate() { 
     let {identification, password} = this.getProperties('identification', 'password') 
     this.get('session').authenticate('authenticator:devise', identification, password).catch(reason => { 
     console.log(reason.error || reason) 
     }) 
    } 
    } 
}) 

et ma configuration authentificateur Devise:

// app/authenticators/devise.js 

import Devise from 'ember-simple-auth/authenticators/devise' 

export default Devise.extend({ 
    serverTokenEndpoint: 'http://localhost:4200/api/v1/users/sign_in', 
    resourceName: 'user', 
    crossOriginWhiteList: ['http://localhost:4200/'] 
}) 

Pour des fins de développement, je l'ai fait remarquer la partie error! "401 Unauthorized", 401 unless authenticated dans ma config de raisin (qui est un autre problème bien) juste pour voir si elle fonctionne même, mais il jette ceci:

POST http://localhost:4200/api/v1/users/sign_in 405 (Method Not Allowed)

Je ne sais pas quoi faire, et en tant que telle ap Preciate un peu d'aide. Si je peux poster plus de code à partir d'autres fichiers, je serais heureux de le dire.

+0

'crossOriginWhiteList' n'existe plus car l'auto-autorisation a été supprimée - vous pouvez le supprimer en toute sécurité. – marcoow

+0

Le paramètre doit probablement être 'serverTokenEndpoint: 'http: // localhost: 3000/api/v1/users/sign_in'' (port 3000 au lieu de 4200) ou utilisez-vous le mode proxy Ember CLI? Si vous êtes alors votre serveur Rails ne permet pas de requêtes 'POST' à' serverTokenEndpoint: '/ api/v1/users/sign_in'' ce qui serait étrange car 'POST's devrait être le seul type de requêtes qui soit envoyé à cette route. – marcoow

+0

@marcoow mon serveur rails est à 'localhost: 4200'. les deux rails et la braise fonctionnent dans différents processus. aussi, quel est le mode proxy CLI de ember? – jona

Répondre

0

J'ai découvert que mes itinéraires sont au /users/sign_in, pas au /api/v1/users/sign_in.