Django以匿名用户身份登录?

时间:2013-05-15 08:38:57

标签: python django

我正在尝试登录用户。创建他的个人资料后。 但是当他授权他时,他以匿名用户身份登录。

from django.contrib.auth import authenticate as authorise

def shopify_register(request):

    print "############*****GOT DETAILS*****############"
    password = request.POST['pass']


    subs, stat = Subscription.objects.get_or_create(validity=datetime.now()+timedelta(days=30))
    newuser, stat = User.objects.get_or_create(username=request.POST['email'])
    newuser.set_password(password)
    newuser.save()
    user, stat = UserProfile.objects.get_or_create(subscription=subs,user=newuser)
    domain, stat = Domain.objects.get_or_create(user_profile=user, shortname=request.POST['shop_name'], keywords=request.POST['keywords'])

    profile,stat = ShopifyUserProfile.objects.get_or_create(shop_user =user.. etc )
    username = request.POST['email']



    authuser = authorise(username=username, password=mdpass)
    domain = Domain.objects.get(user_profile=user)
    testimonies = Testimony.objects.filter(domain=domain).filter(show=0).order_by('-timestamp')
    c = RequestContext(request, {
        'user' : user,
        'testimonies': testimonies,
        'request': request,
        'mentions': 1,
        'domain': domain
    })
    return render_to_response('homepage.html', context_instance=c)

更新:

authuser = authorise(username=username, password=mdpass)

这不授权用户。虽然已经创建了用户。

它工作正常,但它将用户记录为匿名用户?这有什么不对?

删除了md5哈希,但用户仍未获得授权。

更新:2

ipdb> authuser = authorise(username=username, password=password)
ipdb> authuser
<User: ratan@kumar.com>
ipdb> temp=auth_login(request,authuser)
ipdb> temp
ipdb> print temp
None

这意味着它已授权用户,但无法登录。

2 个答案:

答案 0 :(得分:1)

您需要在验证后调用登录功能。

from django.contrib.auth import login as auth_login
auth_login(request, user)

答案 1 :(得分:1)

您需要将用户输入的密码原样发送到authorise,不需要shs224。 authorise将负责哈希。

from django.contrib.auth import login

#remove md5 step
authuser = authorise(username=username, password=password)
login(authuser, request)

您需要在login之后致电authenticate