2016-04-06 4 views
1

私はクライアントfwとしてAngularJSを使用していますし、django restフレームワークです。私は認証の部分にいて、私たちに/ pwをPOSTしてから、バックエンドでユーザーにログインし、@ login_requiredを使ってアクセスできるかどうか疑問に思っていました。サーバからのDjango RESTログイン

私はクライアントで$クッキーを使用しないでください。そして、私がログインしていないなら、404で応答してから、角度でユーザーをログインページにリダイレクトします。ユーザーがログインすると、サーバーにもアクセスできます。

localhost:8000のdjangoにログインしてから、localhost:82からアクセスすることもできますか?私が入力すると、検証作品

angular.js:11442 GET http://localhost:8000/website/api/order/?format=json 404 (Not Found) 


@api_view(['POST']) 
def login(request): 
    if request.method == 'POST': 
     #print(request.data['password']) 
     username = request.data['username']; 
     password = request.data['password']; 
     user = auth.authenticate(username=username,password=password); 
     if user is not None: 
      if user.is_active: 
       auth.login(request,user); 
       return Response(200) 
     else: 
      return Response(404) 
    else: 
     return Response(404) 

が動作していない82:私は管理者ページにログイン(現在のユーザーがログインしている)、その後、ローカルホストからいくつかの情報にアクセスしてきた試みる

実際のユーザー名とパスワード私は200の応答を得ます。私がlocalhost/adminと入力した場合、クライアントからadminアカウントでログインすると管理ページにアクセスできなくなりますか?現在私はadmin-pageにアクセスしようとするとログインしていません。

+0

私の答えはあなたを助けましたか?もしそうなら、それを受け入れてください。 – ilse2005

答えて

1

SessionAuthenticationを使用する場合は、同じホスト上にいる必要があります。サーバーは、別のホストからページにアクセスするときに、同じユーザーかどうかを確認することはできません。

angle.jsアプリが別のホストで動作している場合は、TokenAuthenticationまたはJSON WTAのような洗練された方法で認証する必要があります。

関連する問題