实时服务器密码重置链接未重定向到使用 django-rest-framework 和 Reactjs 的重置密码页面

问题描述 投票:0回答:0

使用 Django-rest-framework 和 reactjs 在 Live Server 上:在这里我发送邮件忘记密码,我收到邮件但是当我点击密码重置链接时它没有重定向到密码重置页面。

显示enter image description here

但是当我使用本地主机时,它工作正常,它正在重定向到密码重置页面。 enter image description here

代码: 应用程序.js

 import React from 'react'
 import "./App.css";
 import {BrowserRouter as  Router, Routes, Route, Navigate } from "react-router-dom"
 import Home from "./Home"
 import LoginReg from './pages/auth/LoginReg';
 import SendPasswordResetEmail from './pages/auth/SendPasswordResetEmail';
 import ResetPassword from './pages/auth/ResetPassword';

 const App = () => {
  const {access_token} = useSelector(state => state.auth )

   return (
     <div >
     <Router>
      <Routes>
         <Route exact path = "/">
           <Route index element = {<Home/>}/>
         </Route>
   
       {/* Login and registration path for Admin/User credential */} 
         <Route exact path = "/" element = {<Layout/>} >
           <Route path = "loginreg" element = {
             access_token ? <Navigate to = '/dashboard' />: <LoginReg />} />
           <Route path = "sendpasswordresetemail" element = {<SendPasswordResetEmail/>} />
           <Route path = "api/user/reset/:id/:token" element = {<ResetPassword/>} />
           <Route path = "passwordchange" element = {<ChangePassword />} />
         </Route>
         <Route path="*" element={<Navigate to="/" />} />
    
       </Routes>
     </Router>
     </div>

   )
  }

Serializer.py

class SendPasswordResetEmailSerializer(serializers.Serializer):
    email = serializers.EmailField(max_length=255)

    class Meta:
        fields = ['email']

    def validate(self, attrs):
        print("attrs:",attrs)
        email = attrs.get('email')
        print("email:", email)
        if User.objects.filter(email=email).exists():
            user = User.objects.get(email = email)
            print("User:",user)
            # encode karenge user id ko or 
            uid = urlsafe_base64_encode(force_bytes(user.id))
             print('Encoded UID', uid)
            token = PasswordResetTokenGenerator().make_token(user)
            print('Password Reset Token', token)
            link = 'http://localhost:3000/api/user/reset/'+uid+'/'+str(token)
            print('Password Reset Link', link)
        #  Send EMail
            body = 'Click Following Link to Reset Your Password Local '+link
            data = {
            'subject':'Reset Your Password',
            'body':body,
            'to_email': user.email
            }
           print("Data:", data)
            Util.send_email(data)             
            return attrs
    
        raise serializers.ValidationError('You are not a Registered User')`    
reactjs python-3.x django-rest-framework react-router django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.