django - 如何在 django 中进行社交媒体身份验证
问题描述
我希望用户能够通过linkedin在我的网站上注册,并将他们重定向到带有他们用户名实例的页面。例如,重定向 url 将包含他们的用户名http://127.0.0.1:8000/the_username_from_linkedin_profile。
这是我希望用户在使用linkedin 注册后重定向到的网址。
path(r'<str:username>/', views.dashboard, name='dashboard'),
这是仪表板视图。
@login_required
def dashboard(request, username):
"""Dashboard page for user"""
if request.user.username != username:
return redirect(reverse(
'accounts:dashboard',
args=(request.user.username,))
)
return render(request, 'accounts/dashboard.html')
这是具有向linkedin 注册按钮的模板。
<form id="registrationForm" class='white-popup-block mfp-hide' method='post' action="{% url 'accounts:register'%}">
<div id="reg-errors"></div>
<div class="form-group">
{% csrf_token %}
{{ reg_form.fullname|add_class:'form-control input-upper my-3' }}
{{ reg_form.username|add_class:'form-control input-upper my-3' }}
{{ reg_form.email|add_class:'form-control input-upper my-3' }}
{{ reg_form.organization|add_class:'form-control input-upper my-3' }}
{{ reg_form.password1|add_class:'form-control input-upper my-3' }}
{{ reg_form.password2|add_class:'form-control input-upper my-3' }}
<small style="color:black" class="text-already"><b>By registering you agree to our</b><a href="{% url 'tos' %}"> terms and conditions</a></small>
<div class='text-center'>
<img src='/static/images/loader.gif' id='regLoader' class='d-none' />
</div>
<div id="regSection">
<button type="submit" class="btn btn-primary btn-block btn-signup-form">
<i class="fa fa-user-plus fa-2x ml-10" aria-hidden="true"></i>
SIGN UP
</button>
<a href="{% url 'social:begin' 'linkedin-oauth2' %}?next={{ next }}" class='btn btn-primary btn-block btn-sign-linkedin'> <i class="fab fa-linkedin-in"></i> Register with Linkedin</i></a>
{% comment %} <a href="{% url 'social:begin' 'linkedin-oauth2' %}?next={{ next }}" class='btn btn-primary btn-block btn-sign-linkedin'> <i class="fab fa-linkedin-in"></i> Register with Linkedin</i></a> {% endcomment %}
<p style="color:black" class="text-already d-none d-md-block"><b>Already have an account? </b><a id='sidebarCollapse1' href="#" >LOGIN</a></p>
<p style="color:black" class="text-already d-md-none"><b>Already have an account? </b><a id='loginRedirect' href="#loginForm" >LOGIN</a></p>
</div>
解决方案
推荐阅读
- css - Video.js 更改焦点样式
- python - 用户选项和验证
- python - 执行一个函数可以防止 tkinter 窗口出现
- mysql - 显示具有其他属性的组中的第一个和最后一个 mysql 记录
- python-3.x - 无法使用 selenium 从网站中定位元素
- php - Laravel 8 没有从包“\Conner\Tagging\Taggable;”中找到“标签”
- c - 时间复杂度会根据参数变化吗?
- reactjs - 开玩笑的期望语句不会等待承诺得到解决
- strapi - 如何在strapi中使用根路由(/)作为/admin
- google-sheets - 从 vlookup 检查 Google 表格中的文本而不破坏公式、文本换行或将列宽更改为“适合数据”?