我目前正在后台使用Djoser为我的基于React Native的应用程序进行身份验证。但是,对于帐户激活,Djoser发送一个包含uid和令牌的链接。我希望这个链接在我的应用程序上打开一个页面,而我从链接中获得uid和令牌。我需要在链接中发送uid和令牌作为我从react native应用程序激活请求的主体。请建议如何做到这一点。任何帮助都将是非常感激的,因为我在这个特定的部分卡住了。
我集成了djoser和reactjs。它和react native很像。这可能是有用的。
IN your 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;
我也有同样的问题,并发现了一篇博客文章,展示了如何使您的反应原生移动应用程序的链接:https://medium.com/react-native-training/deep-linking-your-react-native-app-d87c39a1ad5e
这使用了react-native中的链接:
- 与expo-cli链接
- 链接本地代码
更规范:
使用djoser,您可以向用户发送电子邮件,提供一个url来激活用户的帐户。你发送的这个url应该链接到你的前端,然后调用你的api并激活用户。使用博客中指定的技术,您可能能够做到这样的事情。