Javascript 如何使用令牌注册器(MERN-)通过邮件激活帐户?

Javascript 如何使用令牌注册器(MERN-)通过邮件激活帐户?,javascript,node.js,reactjs,mongodb,Javascript,Node.js,Reactjs,Mongodb,当用户创建一个帐户时,他通过电子邮件接收到一个链接,该链接的末尾有一个令牌。我如何提取该代币,然后启动帐户? 或者是否有其他方法使用注册令牌验证帐户 function ActivationEmail() { const {ActToken} = useParams(); useEffect(() => { if(ActToken){ const activationEmail = async () => {

当用户创建一个帐户时,他通过电子邮件接收到一个链接,该链接的末尾有一个令牌。我如何提取该代币,然后启动帐户? 或者是否有其他方法使用注册令牌验证帐户

function ActivationEmail() {
    const {ActToken} = useParams();
    
    useEffect(() => {
        if(ActToken){
            const activationEmail = async () => {
                try { 
                    await axios.get('/api/users/verificare?validation=', {ActToken})
                } catch (err) {
     }
            }
            activationEmail()
        }
    },[ActToken])
路线:

 <Route path="/verification?t=:ActToken" component={ActivationEmail} />

useparms
钩子用于获取URL参数,而不是查询参数(查询参数位于
字符之后)

使用以下代码获取令牌

 const queryParams = new URLSearchParams(window.location.search)
 const token= queryParams.get('t') 
也要做一些代码结构更改,如下所示

const activationEmail = async (token) => {
    try { 
        await axios.get(`/api/users/verificare?validation=${token}`)
    } 
    catch (err) {
        console.error(err);
    }
}

function ActivationEmail() {
    const queryParams = new URLSearchParams(window.location.search)
    const ActToken = queryParams.get('t');

    useEffect(() => {
        if(ActToken){
            activationEmail(ActToken)
        }
    },[])

    // Return your component DOM here
}
还要更新路由路径(在定义路由路径时,我们不需要提及查询参数)



我将const queryParams=new URLSearchParams(window.location.search)const ActToken=queryParams.get('t')放在ActivationEmail中,但它也不起作用,我在所有地方都有ActToken的控制台日志,而且它永远不会显示。尝试将路由路径更改为“/验证”。删除部分“t:ActToken”。我在->等待axios.get(
/api/users/VerificationCare?validation=${ActToken}
)中修改了它,现在它可以工作了,但当我两次单击链接中的按钮->重定向和必须进入此链接时(从邮件重定向时和我需要转到链接->单击他->输入,现在是真的)我不能完全理解你在前面的评论中所说的话。你是说“你需要点击链接两次才能让它工作”吗?
const activationEmail = async (token) => {
    try { 
        await axios.get(`/api/users/verificare?validation=${token}`)
    } 
    catch (err) {
        console.error(err);
    }
}

function ActivationEmail() {
    const queryParams = new URLSearchParams(window.location.search)
    const ActToken = queryParams.get('t');

    useEffect(() => {
        if(ActToken){
            activationEmail(ActToken)
        }
    },[])

    // Return your component DOM here
}
 <Route path="/verification" component={ActivationEmail} />