This is a Social network website. It’s built-in python Django. I need to add the user login section to the values stored in the local storage section.
-
in this website have 2 login method one is end-user and another is companies
-
the main setting is needed user is login that time the key and value is needed to store the local storage
-
this is needed for cross-site login for users for example Facebook users have joined in through Instagram.
-
please help me with the solution? I need to fix the set cookies in the session also
I added the codes below section models.py
# Custom user
class CustomUser(AbstractUser):
""" Custom user model"""
email = models.EmailField(unique=True, validators=[EmailValidator])
is_company = models.BooleanField(default=False)
is_employee = models.BooleanField(default=False)
is_enduser = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
slug = AutoSlugField(populate_from='username')
objects = CustomUserManager()
def __str__(self):
return f"{self.username}"
@property
def group_name(self):
"""
Returns a group name based on the user's id to be used by Django Channels.
Example usage:
user = User.objects.get(pk=1)
group_name = user.group_name
"""
return "user_%s" % self.id
*urls.py
app_name = ‘account’
urlpatterns = [
path('login/company/', views.u_login, name='c_login'),
path('login/employee/', views.c_login, name='u_login'),
path('logout/', views.user_logout, name='logout'),
path('user-signup/', user_signup_view, name="user_signup"),
path('switch/<int:id>/', switch_user, name="user_switch"),
path('activate/<slug:uidb64>/<slug:token>/',views.activate_account, name='activate'),
path('change-pwd/<int:id>/', views.set_password, name='set_pwd'),
]
#employee copy login
def c_login(request):
print("runned")
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
print("cd",cd)
user = authenticate(request,
username=cd['username'],
password=cd['password'],
remember_me=cd['remember_me'])
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect(reverse('feed:user_feed', args=[request.user.profile.slug]))
else:
return HttpResponse('Disabled account')
else:
messages.error(request, 'Invalid username or password')
return render(request, 'account/u_login.html', {'form': form})
else:
form = LoginForm
return render(request, 'account/u_login.html', {'form': form})
Login session check through cookies and set encrypted token with (Unique ID, Name, E-mail) According to the given flow.
Set details in Cookies with Encrypted Token
With
(ID,Name,Email )
2
Answers
first install these packages and the settings include session also.
https://docs.djangoproject.com/en/3.2/topics/http/sessions/
install this package and session need to added also
Probably django-allauth is what you need. Most thing you need have been implemented.
https://django-allauth.readthedocs.io/en/latest/index.html