#django #react-native #djoser #react-native-linking
#django #react-native #djoser #react-native-linking
Вопрос:
В настоящее время я выполняю аутентификацию для своего приложения на основе React Native, используя Djoser в серверной части. Однако для активации учетной записи Djoser отправляет ссылку, содержащую uid и токен. Я хочу, чтобы эта ссылка открывала страницу в моем приложении, пока я получаю uid и токен по ссылке. Мне нужно отправить uid и токен в ссылке в качестве тела в моем запросе на активацию из моего приложения react native.Пожалуйста, предложите, как это можно сделать. Любая помощь была бы заметна, потому что я застрял на этой конкретной части.
Комментарии:
1. Если вы найдете какое-либо решение. Пожалуйста, поделитесь со мной. Я тоже застрял в этой проблеме
Ответ №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;
Комментарии:
1. Эй, спасибо за ваш ответ, я относительно новичок в react native, а также в Django (djoser). Я не понимаю, как ссылка, полученная в электронном письме, откроется в приложении и как я смогу получить uid и токен в мобильном приложении. Потому что при нажатии на URL-адрес он открывается непосредственно в браузере. Пожалуйста, не могли бы вы объяснить, как это работает. Спасибо!
Ответ №2:
У меня такая же проблема, и я нашел статью в блоге, в которой показано, как создать ссылку на ваше мобильное приложение react-native: https://medium.com/react-native-training/deep-linking-your-react-native-app-d87c39a1ad5e
При этом используется нечто, называемое связыванием в react-native:
Дополнительные спецификации:
С помощью djoser вы можете отправить электронное письмо пользователю, в котором указан URL-адрес для активации учетной записи пользователя. Этот отправляемый вами URL-адрес должен ссылаться на ваш интерфейс, который затем вызовет ваш api и активирует пользователя. С помощью техники, указанной в блоге, вы, вероятно, сможете это сделать.