Как выполнить активацию учетной записи по электронной почте с помощью Djoser и React Native?

#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 и активирует пользователя. С помощью техники, указанной в блоге, вы, вероятно, сможете это сделать.