私はRailsアプリケーションでユーザー認証のためにDeviseを使用しています。私はアプリケーションでデフォルトのレール足場の代わりにAngularJSを使用しようとしました。問題は、before_filter:authenticate_userを追加したときです。コントローラでは、リソースの更新/保存および削除のためのAngularJS呼び出しは、Unauthorized Access(401)とは言いません。Rails - DeviseとAngularJSを使用した認証エラー
リソース:
@app.factory "employeesDB", ($resource) ->
$resource("/employees/:id", {id: "@id"}, {update: {method: "PUT"}},
{destroy: {method: "DELETE"}}
)
アクションを保存します。ここでは、コードの一部である
$scope.saveEmpl = ->
$scope.em = new Object if !$scope.em
employeesDB.save({}, $scope.em, (resource) ->
$scope.employees.push(resource)
, (response) ->
console.log("Failed")
)
の$ scope.emは、レコードのデータを含むオブジェクトであり、それがにバインドされますng-modelを使用した角度。
before_filter:authenticate_userを削除すると、すべてが完璧に機能します。コントローラーから
class EmployeesController < ApplicationController
#before_filter :authenticate_user!
問題は、レコードを保存/更新/削除しようとしたときにのみ発生し、読み取るだけでOKです。
AngularとDeviseを使用するときに従うべき具体的なガイドラインはありますか? 私はレールとangularJSの初心者ですので、詳細な説明をお待ちしております! ありがとう
$ httpProviderのデフォルトに 'withCredentials'パラメータを渡してみましたか? '' $ httpProvider '、function($ httpProvider){$ httpProvider.defaults.withCredentials = true;}])) '? – Stewie
以下を追加しましたが、残念ながら動作しませんでした。 @app = angular.module( "Mathra"、["ngResource"])。config(['$ httpProvider'、($ httpProvider) - > $ httpProvider.defaults.withCredentials = true ]) – jkotzi