本文整理汇总了Python中socialregistration.utils.OpenID类的典型用法代码示例。如果您正苦于以下问题:Python OpenID类的具体用法?Python OpenID怎么用?Python OpenID使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OpenID类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict()):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http://%s%s' % (
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
if client.is_valid():
user = authenticate(identity=request.GET.get('openid.claimed_id'))
if user is None:
request.session['socialregistration_user'] = User(username="not_yet")
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id')
)
return HttpResponseRedirect(reverse('socialregistration_setup'))
else:
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例2: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
if client.is_valid():
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.objects.get(identity=request.GET.get('openid.claimed_id'))
except OpenIDProfile.DoesNotExist: # There can only be one profile with the same identity
profile = OpenIDProfile.objects.create(user=request.user,
identity=request.GET.get('openid.claimed_id'))
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=request.GET.get('openid.claimed_id'))
if user is None:
request.session['socialregistration_user'] = User()
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id')
)
for key, value in getattr(client, 'registration_data', {}).items():
request.session['social_suggested_%s' % key] = value
return HttpResponseRedirect(reverse('socialregistration_setup'))
else:
login(request, user)
return HttpResponseRedirect(_get_next(request))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例3: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
if client.is_valid():
identity = client.result.identity_url
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.objects.get(identity=identity)
except OpenIDProfile.DoesNotExist: # There can only be one profile with the same identity
profile = OpenIDProfile.objects.create(user=request.user,
identity=identity)
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=identity)
if user is None:
user = User()
user_info = client.get_user_info()
user.first_name, user.last_name = user_info.get('fullname', ' ').split(' ', 1)
user.email = user_info.get('email', '')
request.session['socialregistration_user'] = user
request.session['socialregistration_profile'] = OpenIDProfile(
identity=identity
)
return HttpResponseRedirect(reverse('socialregistration_setup'))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例4: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session["next"] = _get_next(request)
request.session["openid_provider"] = request.GET.get("openid_provider")
client = OpenID(
request,
"http%s://%s%s" % (_https(), Site.objects.get_current().domain, reverse("openid_callback")),
request.GET.get("openid_provider"),
)
return client.get_redirect()
示例5: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
if request.GET.get("openid.mode", "") == "cancel":
return HttpResponseRedirect(_get_next(request))
client = OpenID(
request,
_openid_callback_url(),
request.session.get('openid_provider')
)
if client.is_valid():
identity = client.result.identity_url
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.objects.get(
identity=identity,
site=Site.objects.get_current())
except OpenIDProfile.DoesNotExist: # There can only be one profile with the same identity
profile = OpenIDProfile.objects.create(user=request.user,
identity=identity)
return successful_account_link(request, profile)
user = authenticate(identity=identity)
if user is None:
request.session['socialregistration_user'] = User()
request.session['socialregistration_profile'] = OpenIDProfile(
identity=identity
)
return HttpResponseRedirect(reverse('socialregistration_setup'))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例6: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session['next'] = _get_next(request)
request.session['openid_provider'] = request.GET.get('openid_provider')
client = OpenID(
request,
'http://%s%s' % (
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.GET.get('openid_provider')
)
return client.get_redirect()
示例7: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session["next"] = _get_next(request)
request.session["openid_provider"] = request.GET.get("openid_provider")
client = OpenID(
request,
"http%s://%s%s" % (_https(), request.get_host(), reverse("openid_callback")),
request.GET.get("openid_provider"),
)
try:
return client.get_redirect()
except DiscoveryFailure:
request.session["openid_error"] = True
return HttpResponseRedirect(settings.LOGIN_URL)
示例8: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
if client.is_valid():
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile, created = OpenIDProfile.objects.get_or_create(user=request.user, identity=request.GET.get('openid.claimed_id'))
except IntegrityError:
request.user.message_set.create(message=_('This openid has already been connected to a user.'))
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=request.GET.get('openid.claimed_id'))
if user is None:
request.session['socialregistration_user'] = User()
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id')
)
return HttpResponseRedirect(reverse('socialregistration_setup'))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例9: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session['next'] = _get_next(request)
request.session['openid_provider'] = request.GET.get('openid_provider')
client = OpenID(
request,
_callback_url(request),
request.GET.get('openid_provider')
)
try:
return client.get_redirect()
except DiscoveryFailure:
request.session['openid_error'] = True
return HttpResponseRedirect(settings.LOGIN_URL)
示例10: openid_callback
def openid_callback(
request,
template="socialregistration/openid.html",
extra_context=dict(),
account_inactive_template="socialregistration/account_inactive.html",
):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
"http%s://%s%s" % (_https(), Site.objects.get_current().domain, reverse("openid_callback")),
request.session.get("openid_provider"),
)
if client.is_valid():
identity = client.result.identity_url
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.objects.get(identity=identity)
except OpenIDProfile.DoesNotExist: # There can only be one profile with the same identity
profile = OpenIDProfile.objects.create(user=request.user, identity=identity)
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=identity)
if user is None:
request.session["socialregistration_user"] = User()
request.session["socialregistration_profile"] = OpenIDProfile(identity=identity)
return HttpResponseRedirect(reverse("socialregistration_setup"))
if not user.is_active:
return render_to_response(
account_inactive_template, extra_context, context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(template, dict(), context_instance=RequestContext(request))
示例11: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session['next'] = _get_next(request)
request.session['openid_provider'] = request.GET.get('openid_provider')
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.GET.get('openid_provider')
)
try:
return client.get_redirect()
except DiscoveryFailure:
request.session['openid_error'] = True
return HttpResponseRedirect(settings.LOGIN_URL)
示例12: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session['next'] = _get_next(request)
request.session['openid_provider'] = request.GET.get('openid_provider')
provider = request.GET.get('openid_provider')
client = OpenID(
request,
_openid_callback_url(),
provider
)
try:
return client.get_redirect()
except DiscoveryFailure:
return render_to_response(
'socialregistration/provider_failure.html',
dict(provider=provider),
context_instance=RequestContext(request)
)
示例13: openid_redirect
def openid_redirect(request):
"""
Redirect the user to the openid provider
"""
request.session['next'] = _get_next(request)
request.session['openid_provider'] = request.GET.get('openid_provider')
request.session['socialregistration_connect_object'] = get_object(request.GET)
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.GET.get('openid_provider')
)
try:
logger.info("Received redirect to %s from OpenID" % client.get_redirect())
return client.get_redirect()
except DiscoveryFailure:
request.session['openid_error'] = True
logger.info("OpenID failure, sending user to login.")
return HttpResponseRedirect(settings.LOGIN_URL)
示例14: openid_callback
def openid_callback(request, template='socialregistration/openid.html',
extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
if client.is_valid():
identity = client.result.identity_url
if 'socialregistration_connect_object' in request.session and request.session['socialregistration_connect_object'] != None:
# this exists so that social credentials can be attached to any arbitrary object using the same callbacks.
# Under normal circumstances it will not be used. Put an object in request.session named 'socialregistration_connect_object' and it will be used instead.
# After the connection is made it will redirect to request.session value 'socialregistration_connect_redirect' or settings.LOGIN_REDIRECT_URL or /
try:
# get the profile for this facebook UID and type of connected object
profile = OpenIDProfile.objects.get(identity=identity, content_type=ContentType.objects.get_for_model(request.session['socialregistration_connect_object'].__class__), object_id=request.session['socialregistration_connect_object'].pk)
except OpenIDProfile.DoesNotExist:
OpenIDProfile.objects.create(content_object=request.session['socialregistration_connect_object'], identity=identity)
del request.session['socialregistration_connect_object']
else:
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.objects.get(identity=identity, content_type=ContentType.objects.get_for_model(User))
except OpenIDProfile.DoesNotExist: # There can only be one profile with the same identity
profile = OpenIDProfile.objects.create(content_object=request.user,
identity=identity)
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=identity)
if user is None:
request.session['socialregistration_user'] = User()
request.session['socialregistration_profile'] = OpenIDProfile(
identity=identity
)
return HttpResponseRedirect(reverse('socialregistration_setup'))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)
示例15: openid_callback
def openid_callback(request, template='socialregistration/openid.html', extra_context=dict(), account_inactive_template='socialregistration/account_inactive.html'):
"""
Catches the user when he's redirected back from the provider to our site
"""
client = OpenID(
request,
'http%s://%s%s' % (
_https(),
Site.objects.get_current().domain,
reverse('openid_callback')
),
request.session.get('openid_provider')
)
# print 'hi'
# print request.GET
if client.is_valid():
if request.user.is_authenticated():
# Handling already logged in users just connecting their accounts
try:
profile = OpenIDProfile.all().filter('identity=',request.GET.get('openid.claimed_id')).fetch(1)[0]
except IndexError: # There can only be one profile with the same identity
profile = OpenIDProfile(
user = request.user,
identity=request.GET.get('openid.claimed_id'),
real_name=request.GET.get('openid.ax.value.fullname'),
username=request.GET.get('openid.ax.value.nickname'),
email=request.GET.get('openid.ax.value.email'),
pic_url=request.GET.get('openid.ax.value.image'),
)
profile.save()
return HttpResponseRedirect(_get_next(request))
user = authenticate(identity=request.GET.get('openid.claimed_id'))
if user is None:
user = User(username='openid')
request.session['social_suggested_username'] = request.GET.get('openid.ax.value.nickname')
request.session['socialregistration_user'] = user
if request.GET.get('openid.ext2.value.email'):
request.session['social_suggested_username'] = request.GET.get('openid.ext2.value.email').split('@')[0]
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id'),
internal_username=request.session['social_suggested_username'],
email=request.GET.get('openid.ext2.value.email'),
pic_url= "http://www.gravatar.com/avatar/" + md5.md5(request.GET.get('openid.ext2.value.email')).hexdigest() ,
)
elif request.GET.get('openid.sreg.email'):
request.session['social_suggested_username'] = request.GET.get('openid.sreg.nickname')
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id'),
real_name=request.GET.get('openid.sreg.fullname'),
internal_username=request.GET.get('openid.sreg.nickname'),
email=request.GET.get('openid.sreg.email'),
pic_url="http://www.gravatar.com/avatar/" + md5.md5(request.GET.get('openid.sreg.email')).hexdigest(),
)
elif request.GET.get('openid.ext1.value.email'):
request.session['social_suggested_username'] = request.GET.get('openid.ext1.value.email').split('@')[0]
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id'),
internal_username=request.session['social_suggested_username'],
email=request.GET.get('openid.ext1.value.email'),
pic_url= "http://www.gravatar.com/avatar/" + md5.md5(request.GET.get('openid.ext1.value.email')).hexdigest() ,
)
else:
request.session['socialregistration_profile'] = OpenIDProfile(
identity=request.GET.get('openid.claimed_id'),
real_name=request.GET.get('openid.ax.value.fullname'),
internal_username=request.GET.get('openid.ax.value.nickname'),
email=request.GET.get('openid.ax.value.email'),
pic_url=request.GET.get('openid.ax.value.image'),
)
for key, value in getattr(client, 'registration_data', {}).items():
request.session['social_suggested_%s' % key] = value
return HttpResponseRedirect(reverse('socialregistration_setup'))
else:
login(request, user)
return HttpResponseRedirect(_get_next(request))
if not user.is_active:
return render_to_response(
account_inactive_template,
extra_context,
context_instance=RequestContext(request)
)
login(request, user)
return HttpResponseRedirect(_get_next(request))
return render_to_response(
template,
dict(),
context_instance=RequestContext(request)
)