2017-04-08 8 views
0

私はdjango-rest-social-authパッケージを使用して、ユーザーがDjangoの残りのアプリケーションで認証できるようにしています。私はユーザーのためにFacebookからトークンを取得することができました。今、私はそのトークンの使い方を知らない。ログインしているユーザーが必要なエンドポイントにアクセスしようとしていますが、デバッグするときに匿名ユーザーとしてしかアクセスできません。私はこの問題をgoogleして、さまざまな方法(さまざまなCookie、URLパラメータなど)を試してみました。Django rest_social_authログイン。facebookトークンをどうすればいいですか?

これは私の特定のケースである:

views.py

@login_required 
def home(request): 
    return render(request, 'home.html') 

私はhttp://localhost:8000/api/login/social/token/を呼び出して、私のトークンを取得した(私はdjango-rest-social-auth README以下だった)、それは次のようになります。

{"token": "4571b2dce1f3abec34b28a4c7bd981c248a30698"} 

私はそのトークンを私のユーザにリンクしており、管理者(ホーム>認証トークン>トークン)で見ることができます

@login_requiredを削除しても問題なく家にアクセスできます。私のトークンを使ってそのリソースにアクセスするために、郵便配達員を介してどのようにリクエストを送ることができますか?以下に示すように

答えて

0

を、私は解決策を見つけたいくつかの研究の後。ここ2つの考慮事項があります:私は持っていないことを

class AuthDetailView(BaseDetailView): 
    authentication_classes = (TokenAuthentication,) 
    permission_classes = IsAuthenticated, 
    def get(self, request): 
     return render(request, 'home.html') 

お知らせ:

  • Djangoは私のviews.pyは、次のようになります

許可と認証クラスを必要とします@login_required

  • Djangoは、私は私のAPIへの呼び出しを行うと、認証ヘッダがAuthorization: Token 4571b2dce1f3abec34b28a4c7bd981c248a30698代わりAuthorization: Bearer 4571b2d...ようにする必要があり、それ

の前で「トークン」の代わりに「無記名」と認証ヘッダーが好き

この変更後、request.userは、以前にトークンにリンクされているユーザーに自動的にバインドされます。

1

ヘッダにAuthorization: Bearer 4571b2dce1f3abec34b28a4c7bd981c248a30698を追加します。

enter image description here

+0

この方法で試してもうまくいきませんでした。私はヘッダー 'Application-Authorization:4571b2dce1f3abec34b28a4c7bd981c248a30698'を試してみました。正直なところ、私は何が間違っているのか分かりません... – mcamacho

関連する問題