0

私はdjango rest frameworkとtoken authをバックエンド認証として使用します。私がログインしようとしたとき、私はオーセンティケータとしてのOAuth2使用フロントエンドの残り火 - シンプルな認証のDjango rest + ember simple auth認証者 "authenticator:oauth2"がセッションを復元するのを拒否しました - 無効化

それは言う:バックエンドからトークンが

{「cKCxxxxxxxxxxxxxxxxxxxxx」トークン}は、ユーザーの資格情報が提出され、この形式として来ます:

オーセンティケータ:セッション復元するために拒否された "オーセンティケータのOAuth2" - 無効を...

とセッションはログインしていませんが、ルートが変更されたときにログアウトします。ヘッダーにトークンを追加するにはどうすればよいですか? ember-simple-authを使用すると自動的に追加されなければなりませんか、それとも間違っていますか?

login.js

actions: { 
    authenticate(username, password) { 
    var controller = this.controller;   
    this.get('session').authenticate('authenticator:oauth2', username, password).catch((reason) => { 
     controller.set('errorMessage', reason.detail || reason); 
     console.log(this.get('session.data.authenticated')); 
    }); 
    } 
} 

とオーセンティケータ:

import OAuth2PasswordGrant from 'ember-simple-auth/authenticators/oauth2-password-grant'; 

export default OAuth2PasswordGrant.extend({ 
    serverTokenEndpoint: 'http://127.0.0.1:8000/api/auth/login/', 
}); 

承認者: 'エンバー-単純認証/認可/のOAuth2ベアラ' から インポートOAuth2Bearer。

export default OAuth2Bearer.extend({ 
}); 

アダプタ:

import DS from 'ember-data'; 
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin'; 

export default DS.RESTAdapter.extend(DataAdapterMixin, { 
    host: 'http://127.0.0.1:8000', 
    namespace: 'api', 
    authorizer: 'authorizer:oauth2', 
}); 

答えて

0

TLDR:DRFはあなたがTokenSerializerとオーバーライドをサブクラス化する必要が

を修正token

サーバー側を送信しながら、エンバー社会APIがaccess_tokenを探しますkeyword = Bearer

クライアント側修正

OAuth2Bearerがaccess_tokenと呼ばれるトークン値を想定し、この値が存在する場合、それはBearerプレフィックスでAuthorizationヘッダを追加します。 しかしDRFトークンは、AuthorizationヘッダがTokenを前置されることを想定し、スタンドの下でより良いに以下のコードを参照してください

DRF TOKENのためのワーキング・オーソ

import Ember from 'ember'; 
import Base from 'ember-simple-auth/authorizers/base'; 

const { isEmpty } = Ember; 

export default Base.extend({ 
authorize(data, block) { 
    const accessToken = data['token']; 

    if (!isEmpty(accessToken)) { 
     block('Authorization', `Token ${accessToken}`); 
    } 
    } 
}); 

OAuth2Bearer

Ember Social Auth - OAuth2Bearer

をのorignalへの参照
関連する問題