[英]How get GitHub username in django-allauth after authentication?
我將django-allauth
添加到Django項目中,並且可以在網站上使用GitHub進行身份驗證。
經過用戶身份驗證后,我想獲取GitHub用戶名(已登錄的用戶)。
怎么做?
allauth
設置的用戶名與從github返回的用戶名不同,它是從函數generate_unique_username
返回的值(請參見其源代碼) ,因此,您最好訪問SocialAccount的extra_data字段,以下是顯示如何訪問它的示例視圖。
from django.shortcuts import HttpResponse, render
from allauth.socialaccount.models import SocialAccount
def home(request):
if request.user.is_authenticated:
try:
social_account=SocialAccount.objects.get(user=request.user).extra_data
return HttpResponse(social_account['login'])
except SocialAccount.DoesNotExist: # user created with email and password
return HttpResponse(request.user.username)
return HttpResponse("<a href='/accounts/github/login/'>Sign Up</a>")
{% for account in user.socialaccount_set.all %}
<p>Username: <a target="_blank"
href="{{ account.extra_data.html_url }}">{{ account.extra_data.login }}</a>
</p>
{% endfor %}
extra_data.login
顯示GitHub的登錄名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.