ng-token-auth / devise-token-auth를 사용하여 요청으로 토큰을 보낼 수 없습니다.

매트

https://www.airpair.com/ruby-on-rails/posts/authentication-with-angularjs-and-ruby-on-rails에 의해 작성된 https://www.airpair.com/ruby-on-rails/posts/authentication-with-angularjs-and-ruby-on-rails 에서 찾을 수있는 훌륭한 자습서를 통해 작업하고 있습니다 . //stackoverflow.com/users/199712/jason-swett .

sign_in의 헤더에 토큰이있는 요청을 보낼 수없는 이유를 알아 내려고합니다. 내 사용자 등록 호출이 훌륭하게 작동하고 새 사용자가 db에 생성되지만 로그인하려고 할 때 토큰이 전송되지 않습니다.

여기 내 index.coffee

angular.module 'angDomino', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngResource', 'ui.router', 'rails', 'ng-token-auth']
  .config ($stateProvider, $urlRouterProvider, $locationProvider, $authProvider) ->
    $authProvider.configure({
      apiUrl: '/api'
      })
    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false
      })
    $stateProvider
      .state "home",
        url: "/",
        templateUrl: "app/views/main.html",
        controller: "MainCtrl"
      .state "groups",
        url: "/groups",
        templateUrl: "app/views/groups.html",
        controller: "GroupsCtrl"
      .state "sign_in",
        url: "/sign_in",
        templateUrl: "app/views/user_sessions/new.html",
        controller: "UserSessionsCtrl"
      .state "sign_up",
        url: "/sign_up",
        templateUrl: "app/views/user_registrations/new.html",
        controller: "UserRegistrationsCtrl"

    $urlRouterProvider.otherwise '/'

  .factory "Group", (RailsResource) ->
    class Group extends RailsResource
      @configure url: "/api/groups", name: "group"

다음은 등록 요청 헤더입니다.

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:158
Content-Type:application/json;charset=UTF-8
DNT:1
Host:localhost:9000
If-Modified-Since:0
Origin:http://localhost:9000
Referer:http://localhost:9000/sign_up

그리고 등록 응답 :

access-token:ZAC77KtVm_BBXExMiF5Okg
cache-control:max-age=0, private, must-revalidate
client:AqyOPNCBIiufWAZqTkIPZg
connection:close
content-length:240
content-type:application/json; charset=utf-8
date:Tue, 28 Apr 2015 23:38:58 GMT
etag:"e190da3eab4b3b2da0d6dc8257fd6d91"
expiry:1431473938
server:WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
token-type:Bearer
uid:cc0e37ab-f891-4334-a887-c0a71903edf9
x-content-type-options:nosniff
x-frame-options:SAMEORIGIN
x-request-id:8bf9fe8a-73b9-4e3d-ad40-c8574e88e7c3
x-runtime:0.272364
x-xss-protection:1; mode=block

로그 아웃이 완벽하게 작동합니다 (req 헤더).

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
access-token:0PSupG02KwsbU6k1nQuTXQ
Cache-Control:max-age=0
client:AqyOPNCBIiufWAZqTkIPZg
Connection:keep-alive
Cookie:auth_headers=%7B%22access-token%22%3A%220PSupG02KwsbU6k1nQuTXQ%22%2C%22token-type%22%3A%22Bearer%22%2C%22client%22%3A%22AqyOPNCBIiufWAZqTkIPZg%22%2C%22expiry%22%3A%221431474351%22%2C%22uid%22%3A%22d1871d3d-a8a9-437a-88b9-e0a43f5896da%22%7D
DNT:1
expiry:1431474351
Host:localhost:9000
If-Modified-Since:0
Origin:http://localhost:9000
Referer:http://localhost:9000/sign_up
token-type:Bearer
uid:d1871d3d-a8a9-437a-88b9-e0a43f5896da

하지만 동일한 이메일 / 비밀번호로 로그인하려고하면 다음과 같은 메시지가 표시됩니다.

일반

Remote Address:127.0.0.1:9000
Request URL:http://localhost:9000/api/auth/sign_in
Request Method:POST
Status Code:401 Unauthorized

요청 헤더

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:43
Content-Type:application/json;charset=UTF-8
DNT:1
Host:localhost:9000
If-Modified-Since:0
Origin:http://localhost:9000
Referer:http://localhost:9000/sign_in

로그인이 토큰을 보내지 않는 이유를 아는 사람이 있습니까? 다음은 내 user_sessions 컨트롤러 (coffeescript)입니다.

angular.module('angDomino').controller 'UserSessionsCtrl', [
  '$scope'
  ($scope) ->
    $scope.$on 'auth:login-error', (ev, reason) ->
      $scope.error = reason.errors[0]
      return
    return
]

완전한 sign_in 헤더는 다음과 같습니다.

General
Remote Address:127.0.0.1:9000
Request URL:http://localhost:9000/api/auth/sign_in
Request Method:POST
Status Code:401 Unauthorized

Response Headers
view source
cache-control:no-cache
connection:close
content-length:59
content-type:application/json; charset=utf-8
date:Thu, 07 May 2015 12:53:46 GMT
server:WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
x-content-type-options:nosniff
x-frame-options:SAMEORIGIN
x-request-id:480b63c1-1415-4c49-8774-ccfc11eee644
x-runtime:0.005285
x-xss-protection:1; mode=block

Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:43
Content-Type:application/json;charset=UTF-8
DNT:1
Host:localhost:9000
If-Modified-Since:0
Origin:http://localhost:9000
Referer:http://localhost:9000/sign_in
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36

Request Payload
    view source
    {email: "[email protected]", password: "1234567890"}
    email: "[email protected]"
    password: "1234567890"

sign_up에 대한 dev.log는 다음과 같습니다.

Started POST "/api/auth" for 127.0.0.1 at 2015-05-07 07:40:18 -0500
  [1m[36mActiveRecord::SchemaMigration Load (0.9ms)[0m  [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
Processing by DeviseTokenAuth::RegistrationsController#create as HTML
  Parameters: {"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "confirm_success_url"=>"http://localhost:9000/sign_up", "config_name"=>"default"}
Unpermitted parameters: confirm_success_url, config_name
Unpermitted parameters: confirm_success_url, config_name
  [1m[35m (0.4ms)[0m  BEGIN
  [1m[36m (1.4ms)[0m  [1mSELECT COUNT(*) FROM "users"  WHERE "users"."provider" = 'email' AND "users"."email" = '[email protected]'[0m
  [1m[35mSQL (2.9ms)[0m  INSERT INTO "users" ("confirmed_at", "created_at", "email", "encrypted_password", "provider", "tokens", "uid", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id"  [["confirmed_at", "2015-05-07 12:40:18.475118"], ["created_at", "2015-05-07 12:40:18.475466"], ["email", "[email protected]"], ["encrypted_password", "$2a$10$7dSKnalwMHcuTrWSDEbLSen85tzA9DEyH.Q.EnxHllwZeNOdvBUMy"], ["provider", "email"], ["tokens", "{}"], ["uid", "[email protected]"], ["updated_at", "2015-05-07 12:40:18.475466"]]
  [1m[36m (79.9ms)[0m  [1mCOMMIT[0m
  [1m[35m (0.1ms)[0m  BEGIN
  [1m[36mSQL (0.5ms)[0m  [1mUPDATE "users" SET "confirmed_at" = $1, "tokens" = $2, "uid" = $3, "updated_at" = $4 WHERE "users"."id" = 2[0m  [["confirmed_at", "2015-05-07 12:40:18.638115"], ["tokens", "{\"wASSQpP_tjVaK-VoROXwHg\":{\"token\":\"$2a$10$aJFJmimoQNQFz3T9rItGwOzHMRwtuENcBhZdVCC2b0GBsinKgIhuC\",\"expiry\":1432212018}}"], ["uid", "9ae44b7b-3f7a-4f2d-9091-4cc779751355"], ["updated_at", "2015-05-07 12:40:18.638237"]]
  [1m[35m (0.3ms)[0m  COMMIT
  [1m[36m (0.1ms)[0m  [1mBEGIN[0m
  [1m[35mUser Load (0.5ms)[0m  SELECT  "users".* FROM "users"  WHERE "users"."id" = $1 LIMIT 1 FOR UPDATE  [["id", 2]]
  [1m[36mSQL (0.6ms)[0m  [1mUPDATE "users" SET "confirmed_at" = $1, "tokens" = $2, "uid" = $3, "updated_at" = $4 WHERE "users"."id" = 2[0m  [["confirmed_at", "2015-05-07 12:40:18.712254"], ["tokens", "{\"wASSQpP_tjVaK-VoROXwHg\":{\"token\":\"$2a$10$nb1iyRMzNgjvi34tMK5Ysers4IOulvviMJSA5Q8uop5ARuXMOtxDa\",\"expiry\":1432212018,\"last_token\":\"$2a$10$aJFJmimoQNQFz3T9rItGwOzHMRwtuENcBhZdVCC2b0GBsinKgIhuC\",\"updated_at\":\"2015-05-07T07:40:18.711-05:00\"}}"], ["uid", "95b1c932-b763-4f32-b441-0968175575d5"], ["updated_at", "2015-05-07 12:40:18.712496"]]
  [1m[35m (0.3ms)[0m  COMMIT
Completed 200 OK in 363ms (Views: 0.3ms | ActiveRecord: 90.3ms)


Started GET "/api/auth/validate_token" for 127.0.0.1 at 2015-05-07 07:44:29 -0500
Processing by DeviseTokenAuth::TokenValidationsController#validate_token as HTML
  [1m[36mUser Load (0.5ms)[0m  [1mSELECT  "users".* FROM "users"  WHERE "users"."uid" = '95b1c932-b763-4f32-b441-0968175575d5' LIMIT 1[0m
  [1m[35m (0.3ms)[0m  BEGIN
  [1m[36mUser Load (0.5ms)[0m  [1mSELECT  "users".* FROM "users"  WHERE "users"."id" = $1 LIMIT 1 FOR UPDATE[0m  [["id", 2]]
  [1m[35mSQL (1.0ms)[0m  UPDATE "users" SET "confirmed_at" = $1, "tokens" = $2, "uid" = $3, "updated_at" = $4 WHERE "users"."id" = 2  [["confirmed_at", "2015-05-07 12:44:29.561416"], ["tokens", "{\"wASSQpP_tjVaK-VoROXwHg\":{\"token\":\"$2a$10$7zZRRlJ3rvIS0H/jQUITB.4kEQfdENDB92uCDf84EXsF93V5EzIFS\",\"expiry\":1432212269,\"last_token\":\"$2a$10$nb1iyRMzNgjvi34tMK5Ysers4IOulvviMJSA5Q8uop5ARuXMOtxDa\",\"updated_at\":\"2015-05-07T07:44:29.560-05:00\"}}"], ["uid", "c9719276-a107-41f7-868f-9ed8c87cfa3a"], ["updated_at", "2015-05-07 12:44:29.561612"]]
  [1m[36m (1.2ms)[0m  [1mCOMMIT[0m
Completed 200 OK in 144ms (Views: 0.2ms | ActiveRecord: 3.4ms)

다음은 sign_in에 대한 dev.log입니다.

Started POST "/api/auth/sign_in" for 127.0.0.1 at 2015-05-07 07:53:46 -0500
Processing by DeviseTokenAuth::SessionsController#create as HTML
  Parameters: {"email"=>"[email protected]", "password"=>"[FILTERED]"}
  [1m[35mUser Load (1.5ms)[0m  SELECT  "users".* FROM "users"  WHERE (uid='[email protected]' AND provider='email')  ORDER BY "users"."id" ASC LIMIT 1
Completed 401 Unauthorized in 3ms (Views: 0.2ms | ActiveRecord: 1.5ms)
제이슨 스웻

분명히 적어도이 시점에서, 당신은 당신의 사용자가 uid당신의 사용자와 일치 하도록 만들어야합니다 email.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Devise Token Auth 프로젝트를 마이그레이션 할 수 없습니다.

분류에서Dev

devise_token_auth에서 새 토큰을받는 방법은 무엇입니까?

분류에서Dev

Django를 사용하여 GCM에서 POST 요청을 보낼 수 없습니다.

분류에서Dev

auth_token이 있으면 어떻게 사용자를 얻을 수 있습니까?

분류에서Dev

jwt-auth를 사용하여 dingo / api에서 잘못된 토큰 오류로 인증 할 수 없습니다.

분류에서Dev

GCM을 사용하여 Android로 푸시를 보낼 수 없습니다.

분류에서Dev

devise_token_auth & Rails 5-IndexError : 문자열이 일치하지 않습니다.

분류에서Dev

ID 토큰이있는 Outlook Manage API 2.2를 사용하여 메일을 보낼 수 없습니다.

분류에서Dev

JSON을 사용하여 POST를 보낼 수 없습니다.

분류에서Dev

devise_token_auth를 사용할 때 사용자가 Rails API를 통해 요청 된 리소스를 소유하고 있는지 확인하는 방법

분류에서Dev

인증 토큰이 ~ / .emulator_console_auth_token과 일치하지 않습니다.

분류에서Dev

axios를 사용하여 헤더가있는 가져 오기 요청을 보낼 수 없습니다.

분류에서Dev

Android 앱을 사용하여 HttpPost 요청을 보낼 수 없습니다.

분류에서Dev

X-Auth-Token을 사용한 AXIOS 요청

분류에서Dev

outputStreamWriter ()를 사용하여 앱에서 서블릿으로 문자열을 보낼 수 없습니다.

분류에서Dev

Azure AD 보안 API에 삭제 / 넣기 요청을 보내거나 aadHttpClientFactory를 사용하여 jwt 토큰을 String으로 가져올 수 있습니까?

분류에서Dev

양식 인증과 함께 devise_token_auth 사용

분류에서Dev

devise_token_auth 및 active_model_serializer 사용시 serializer 재정의

분류에서Dev

내보내기 클래스를 사용하여 assimp로 모델을 내보낼 수 없습니다.

분류에서Dev

rails-api devise_token_auth 프로젝트에서 관리자 등록 경로를 제거 하시겠습니까?

분류에서Dev

Django를 서버로 사용하여 단일 요청에 간격으로 여러 응답을 보낼 수 있습니까?

분류에서Dev

여러 매개 변수가있는 게시 요청을 사용하여 올바른 방식으로 애플리케이션을 보낼 수 없습니다.

분류에서Dev

Javascript를 사용하여 특정 IP 주소로 http 요청을 보낼 수 있습니까?

분류에서Dev

php mail () 함수를 사용하여 메일을 보낼 수 없습니다.

분류에서Dev

액세스 토큰을 사용하여 Microsoft Azure 리소스를 요청하는 방법은 무엇입니까? 간단히 말해 azure에서 생성 된 access_token을 어떻게 사용할 수 있습니까?

분류에서Dev

Google Script를 사용하여 Gmail로 Excel 첨부 파일을 보낼 수 없습니다.

분류에서Dev

GoDaddy 서버를 사용하여 laravel 푸시 알림을 iOS 모바일로 보낼 수 없습니다.

분류에서Dev

Ajax를 사용하여 Jquery에서 Spring 컨트롤러로 Multipart 파일을 보낼 수 없습니다.

분류에서Dev

플라스크 보안 auth_token_required-토큰 인증

Related 관련 기사

  1. 1

    Devise Token Auth 프로젝트를 마이그레이션 할 수 없습니다.

  2. 2

    devise_token_auth에서 새 토큰을받는 방법은 무엇입니까?

  3. 3

    Django를 사용하여 GCM에서 POST 요청을 보낼 수 없습니다.

  4. 4

    auth_token이 있으면 어떻게 사용자를 얻을 수 있습니까?

  5. 5

    jwt-auth를 사용하여 dingo / api에서 잘못된 토큰 오류로 인증 할 수 없습니다.

  6. 6

    GCM을 사용하여 Android로 푸시를 보낼 수 없습니다.

  7. 7

    devise_token_auth & Rails 5-IndexError : 문자열이 일치하지 않습니다.

  8. 8

    ID 토큰이있는 Outlook Manage API 2.2를 사용하여 메일을 보낼 수 없습니다.

  9. 9

    JSON을 사용하여 POST를 보낼 수 없습니다.

  10. 10

    devise_token_auth를 사용할 때 사용자가 Rails API를 통해 요청 된 리소스를 소유하고 있는지 확인하는 방법

  11. 11

    인증 토큰이 ~ / .emulator_console_auth_token과 일치하지 않습니다.

  12. 12

    axios를 사용하여 헤더가있는 가져 오기 요청을 보낼 수 없습니다.

  13. 13

    Android 앱을 사용하여 HttpPost 요청을 보낼 수 없습니다.

  14. 14

    X-Auth-Token을 사용한 AXIOS 요청

  15. 15

    outputStreamWriter ()를 사용하여 앱에서 서블릿으로 문자열을 보낼 수 없습니다.

  16. 16

    Azure AD 보안 API에 삭제 / 넣기 요청을 보내거나 aadHttpClientFactory를 사용하여 jwt 토큰을 String으로 가져올 수 있습니까?

  17. 17

    양식 인증과 함께 devise_token_auth 사용

  18. 18

    devise_token_auth 및 active_model_serializer 사용시 serializer 재정의

  19. 19

    내보내기 클래스를 사용하여 assimp로 모델을 내보낼 수 없습니다.

  20. 20

    rails-api devise_token_auth 프로젝트에서 관리자 등록 경로를 제거 하시겠습니까?

  21. 21

    Django를 서버로 사용하여 단일 요청에 간격으로 여러 응답을 보낼 수 있습니까?

  22. 22

    여러 매개 변수가있는 게시 요청을 사용하여 올바른 방식으로 애플리케이션을 보낼 수 없습니다.

  23. 23

    Javascript를 사용하여 특정 IP 주소로 http 요청을 보낼 수 있습니까?

  24. 24

    php mail () 함수를 사용하여 메일을 보낼 수 없습니다.

  25. 25

    액세스 토큰을 사용하여 Microsoft Azure 리소스를 요청하는 방법은 무엇입니까? 간단히 말해 azure에서 생성 된 access_token을 어떻게 사용할 수 있습니까?

  26. 26

    Google Script를 사용하여 Gmail로 Excel 첨부 파일을 보낼 수 없습니다.

  27. 27

    GoDaddy 서버를 사용하여 laravel 푸시 알림을 iOS 모바일로 보낼 수 없습니다.

  28. 28

    Ajax를 사용하여 Jquery에서 Spring 컨트롤러로 Multipart 파일을 보낼 수 없습니다.

  29. 29

    플라스크 보안 auth_token_required-토큰 인증

뜨겁다태그

보관