【问题标题】:How to do account activation through email using Djoser and React Native?如何使用 Djoser 和 React Native 通过电子邮件激活帐户?
【发布时间】:2021-05-13 10:57:03
【问题描述】:

我目前正在后端使用 Djoser 对基于 React Native 的应用程序进行身份验证。但是,对于帐户激活,Djoser 会发送一个包含 uid 和令牌的链接。当我从链接获取 uid 和令牌时,我希望此链接在我的应用程序上打开一个页面。我需要将链接中的 uid 和令牌作为我的响应本机应用程序的激活请求中的正文发送。请建议如何做到这一点。任何帮助都会很明显,因为我被困在这个特定的部分。

【问题讨论】:

  • 如果您找到任何解决方案。请与我分享。我也陷入了这个问题

标签: django react-native djoser react-native-linking


【解决方案1】:

我集成了 djoser 和 reactjs。所以它几乎类似于 react native。它可能是有用的。

在您的 django settings.py 中:

DJOSER = {
       ....

    'ACTIVATION_URL': 'user_activation/{uid}/{token}',
    'SEND_ACTIVATION_EMAIL': True,
    'SEND_CONFIRMATION_EMAIL':True,
      .....
}

Urls.js

....
<Route path="/user_activation/:uid/:token" component={ActivateAccount} />
....

ActivateAccount.js:

const ActivateAccount = () => {

const { uid, token } = useParams();

const history = useHistory();

const activeClick = (e) => {
   
    Axios.post('http://localhost:8000/auth/users/activation/', { uid: uid, token: token })
        .then(() => {
            history.push('/login')
        })
        .catch(err => {
            alert(err.response.data);
        })
};

return (
    <Fragment>
        <Button onClick={activeClick} color="primary">Activate Now</Button>
    </Fragment>
)
}

export default ActivateAccount;

【讨论】:

  • 嘿,谢谢你的回答,我对原生和 Django(djoser) 都比较陌生。我对电子邮件中收到的链接将如何在应用程序中打开以及如何在移动应用程序中获取 uid 和令牌感到困惑。因为当点击网址时,它会直接在浏览器中打开。请你解释一下它是如何工作的。谢谢!
【解决方案2】:

我遇到了同样的问题,并找到了一篇博客文章,介绍了如何创建指向您的 react-native 移动应用的链接:https://medium.com/react-native-training/deep-linking-your-react-native-app-d87c39a1ad5e

这使用了 react-native 中的链接:

更多规格:

使用 djoser,您可以向用户发送一封电子邮件,其中提供了一个 url 来激活用户的帐户。您发送的这个 url 应该链接到您的前端,然后它将调用您的 api 并激活用户。使用博客中指定的技术,您可能会做这样的事情。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 2020-03-27
    • 2018-04-19
    • 2014-08-17
    • 1970-01-01
    • 2020-12-05
    • 2017-06-22
    • 2020-04-07
    • 2020-02-15
    相关资源
    最近更新 更多