2016-03-28 6 views
0

Rails 4.2.5とPostgresを使用したEmber 2.2.3フロントエンドを使用して学校プロジェクトのWebAppを構築しています背中に5.7。私たちは認証に問題があり、関連する解決策を見つけることができませんでした。私たちは認証のためにemberがJSONにメールとパスワードをエンコーディングする必要があり、RailsはJSONオブジェクトがトークンを検証して返すことを期待しています。しかし、実際に起こっているのは、Emberがアプリケーション/ x-www-form-urlencodedバージョンの電子メールとパスワードを送信しているため、Railsが415 Unsupported Media Type Errorをスローすることです。私たちは、認証のために、このチュートリアルに従っ:Ember-Simple-Authエンコーディングリクエストヘッダーアプリケーション/ x-www-form-urlencoded、Railsサーバーはapplication/jsonを期待します

http://romulomachado.github.io/2015/09/28/using-ember-simple-auth-with-devise.html

は、アプリケーション/ JSONにこのエンコーディングを変更するには、エンバーにおける方法はありますか?またはアプリケーション/ x-www-form-urlencodedを受け入れるようにRailsを変更することはできますか?ここで

は、私たちの現在の認証リクエストヘッダです:

POST /users/sign_in HTTP/1.1 
Host: localhost:3000 
Connection: keep-alive 
Content-Length: 63 
Accept: application/json, text/javascript 
Origin: http://localhost:4200 
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
Referer: http://localhost:4200/ 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 

答えて

0

オーバーライドカスタム認証でmakeRequest()

// your-app/authenticators/your-custom-authenticator.js: 
    // serverTokenEndpoint: ... 
    // ... 

    makeRequest(url, data) { 
    const options = { 
     url: url, 
     data: data, 
     type: 'GET', 
     dataType: 'json', 
     accept: 'application/vnd.api+json', 
     headers: { 
     "Content-Type": 'application/vnd.api+json' 
     } 
    }; 

    return Ember.$.ajax(options); 
    }, 
関連する問題