Beispiel #1
0
def login(request):
    REDIRECT_URI = request.POST.get(
        'next',
        request.GET.get('next',
                        reverse("home",
                                kwargs={})))  #next indicated in templaetes
    if request.method == 'GET':
        code = request.GET.get('code')
        if code:
            redirect_to = "http://%s%s" % (
                request.META['HTTP_HOST'], reverse(
                    "home", kwargs={}))  # redirection URL after authenticate
            api = WeixinMpAPI(appid=settings.APP_ID,
                              app_secret=settings.APP_SECRET,
                              redirect_uri=redirect_to)
            auth_info = api.exchange_code_for_access_token(code=code)
            api = WeixinMpAPI(access_token=auth_info['access_token'])
            api_user = api.user(openid=auth_info['openid'])
            user = authenticate(request=request, user=api_user)
            if user and not user.is_anonymous():
                auth_login(request, user)
                return redirect(redirect_to)

        return redirect(reverse("auth_login", kwargs={}))
    else:  #normal login is POST
        REDIRECT_FIELD_NAME = 'next'
        return auth_views.login(request,
                                redirect_field_name=REDIRECT_FIELD_NAME,
                                extra_context=None)

        # below method is also OK
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request=request,
                            username=username,
                            password=password)
        if user is not None:
            auth_login(request, user)
        else:
            return redirect(reverse("auth_login", kwargs={}))

    return auth_views.login(request,
                            redirect_field_name=REDIRECT_URI,
                            extra_context=None)
Beispiel #2
0
def wechat_auth_login(request):
    REDIRECT_URI = request.POST.get(
        'next',
        request.GET.get('next',
                        default_redirect_url))  #next indicated in templaetes

    if request.method == 'GET':
        code = request.GET.get('code')
        if code:
            redirect_to = "http://%s%s" % (
                request.META['HTTP_HOST'], default_redirect_url
            )  # redirection URL after authenticate
            api = WeixinMpAPI(appid=settings.APP_ID,
                              app_secret=settings.APP_SECRET,
                              redirect_uri=redirect_to)
            auth_info = api.exchange_code_for_access_token(code=code)
            api = WeixinMpAPI(access_token=auth_info['access_token'])
            api_user = api.user(openid=auth_info['openid'])
            user = authenticate(request=request, user=api_user)
            if user and not user.is_anonymous():
                auth_login(request, user)
                return redirect(redirect_to)
            else:
                print "authenticate failure, redirect to login page"
        else:
            print "not code in GET request, this is not correct wechat login request, redirect to login page"

        # return redirect(reverse("auth_login", kwargs={})) # registration url
        return redirect(reverse("auth_view_login", kwargs={}))
    else:  # normal login is POST
        REDIRECT_FIELD_NAME = 'next'
        return auth_views.login(request,
                                template_name='auth/registration/login.html',
                                redirect_field_name=REDIRECT_FIELD_NAME,
                                extra_context=None)

        # below method is also OK
        auth_login_post(request)

    #
    return auth_views.login(request,
                            redirect_field_name=REDIRECT_URI,
                            extra_context=None)
Beispiel #3
0
def wechat_auth_url_request(request):
    #REDIRECT_URI = "http://%s%s" % (request.META['HTTP_HOST'], reverse("login", kwargs={}))
    REDIRECT_URI = request.build_absolute_uri('/').strip("/") + reverse(
        "wechat_auth_login", kwargs={})
    api = WeixinMpAPI(appid=settings.APP_ID,
                      app_secret=settings.APP_SECRET,
                      redirect_uri=REDIRECT_URI)
    redirect_uri = api.get_authorize_login_url(scope=("snsapi_userinfo", ))
    return redirect(
        redirect_uri
    )  #  "GET /zh/authwrapper/weixin/auth_login/?code=081xJ2wf2A2pbJ05JNwf2RPmwf2xJ2wT&state= HTTP/1.1" 302 0
Beispiel #4
0
def wechatlogin(request):
	#REDIRECT_URI = "http://%s%s" % (request.META['HTTP_HOST'], reverse("login", kwargs={}))
	REDIRECT_URI = request.build_absolute_uri('/').strip("/") + reverse("login", kwargs={})
	api = WeixinMpAPI(appid=APP_ID, app_secret=APP_SECRET,redirect_uri=REDIRECT_URI)
	redirect_uri = api.get_authorize_login_url(scope=("snsapi_userinfo",))
	return redirect(redirect_uri)