0

私は現在Facebook Login、私のウェブサイトへの統合に取り組んでいます。

JavaScript では、ユーザーが私の Web サイトにログインした瞬間にユーザーの情報を取得できました。Facebook経由で。

したがって、私のJavaScriptコードの一部は次のとおりです。

...
u_email = response.email;      //gets user's email
u_fname = response.first_name; //gets user's first name

...等々!

ここで、次の 2 つのシナリオのいずれかを実行したいと思います。1) ユーザーが初めて Web サイトにログインする場合。このすべての情報 (電子メール、名前など) をユーザーのデータベースに保存したいと考えています。2) ユーザーのログインが初めてではない場合、ユーザーを別のページにリダイレクトし、データベースから取得する必要があるユーザーに関する情報を表示したいと思います (ユーザーの電子メールによると)。 !

どちらの場合も、ユーザーの情報を介してデータベースにアクセスする必要があります。したがって、私がやりたいことは、ユーザーの情報を渡しながら、ユーザーを Django ビューにリダイレクトすることです。たとえば、JavaScript ファイルに次のコードを含めることができます。

document.location.href = '../' + u_email +'/' + u_fname + '/login';

...そして私の中でurls.py、私は次のものを持つことができます:

url(r'^(?P<u_email>\w+)/(?P<u_fname>\w+)/login/$', views.login, name='login')

最後に、私のviewファイルには次のものがあります。

def login(request, u_email, u_fname):
    template = loader.get_template('counters/login.html')
    context = RequestContext(request, {
        'u_email': u_email,
        'u_fname': u_fname,
})
return HttpResponse(template.render(context))

今; 明らかに、私には問題があります。つまり、ユーザーの (おそらく秘密の) 情報が URL に表示されます! JavaScriptからDjangoビューに渡された引数を隠すことでそれを回避する方法はありますか?

4

2 に答える 2

0

によると、情報Modelを保存する必要がUserあり、彼emailは一意です。

def login(request, u_email, u_fname):
    try:
        # Try to get the User in your DB
        user = YourUserModel.objects.get(email=u_email)
        # Do your redirects.
    except YourUserModel.DoesNotExist:
        # Do your other stuffs, like add this new user in your DB

    template = loader.get_template('counters/login.html')
    context = RequestContext(request, {
        'u_email': u_email,
        'u_fname': u_fname,
    })
    return HttpResponse(template.render(context))
于 2013-06-30T10:06:49.070 に答える