2017-08-10 10 views
1

の応答形式を変更すると、それは、ログイン成功時には、次のようなデータで応答トークン作成エンドポイント、です:どのように私は現在<a href="https://github.com/PhilipGarnero/django-rest-framework-social-oauth2" rel="nofollow noreferrer">Django-rest-framework-social-oauth2</a>を使用していますDjangoの認証ログインAPI

{ 
    "access_token": "************", 
    "token_type": "Bearer", 
    "expires_in": 36000, 
    "refresh_token": "************", 
    "scope": "read write" 
} 

しかし、私は形式を変更したいとその形式のデータをラップ:

{ 
    "status" : true, 
    "data" :{ 
     "access_token": "************", 
     "token_type": "Bearer", 
     "expires_in": 36000, 
     "refresh_token": "************", 
     "scope": "read write" 
    } 
} 

私は、Djangoのドキュメントを読み、ライブラリビューを拡張しようとしたが、何も変化は

を表示されません0

答えて

2

私はclass based viewを作成し、拡張することをお勧めDRF-社会のOAuth2のトークンを作成する方法postありTokenView

  1. views.py

    from rest_framework_social_oauth2.views import TokenView 
    
    class MyTokenView(TokenView): 
    
        def post(self, request, *args, **kwargs): 
         response = super(MyTokenView, self).post(request, *args, **kwargs) 
         return Response({ 
          'status': Your_Status, 
          'data': response.data, 
         }, status=response.status_code) 
    

    .superメソッドが作成されますが目的のトークンを指定して、次に示すようにレスポンスを操作することができます(必要な場合は他にもたくさんの方法があります)。

  2. あなたはまた、認証のためにあなたのurls.pyにURLエンドポイントを追加する必要があります。

    from my_project/my_app import MyTokenView 
    
    urlpatterns = [ 
        ... 
        url(
         r'^my_api/authenticate/$', 
         MyTokenView.as_view(), 
         name='authenticate'), 
        ... 
    ] 
    

に注意してください:をあなたはを処理する必要がありTokenViewクラスを拡張しているので、失敗応答も同様です。

+0

こんにちは、名前param値を 'authorize'に変更しなければならず、完全に機能しました。どうもありがとう! – user8169843

+0

@ user8169843仲間を助けてうれしく:)。 チックアイコンをクリックして、必要に応じて回答を受け入れることができます。 –

+1

あなたがそれに値する。再度、感謝します! – user8169843

関連する問題

 関連する問題