Сохранять пользователей вошедшими в систему с помощью аутентификации Knox Token Authentication django
Я с трудом пытаюсь разобраться в этом.
Я пытаюсь использовать django rest api knox token authentication и React.
Вот как выглядит мой код в Authenticate.js
export function LoginComponent (props) {
const [state, setState] = useState({credentials : {username: '',password: '',}})
const [hasLoggedIn, setHasLoggedIn] = useState(false)
const Login = (event) => {
event.preventDefault()
fetch("http://127.0.0.1:8000/users/accounts/api/auth/login",{
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(state.credentials)
})
.then( data => data.json()).then(
data => {
console.log(data.token)
props.userLogin(data.token)
}
)
.then(
console.log(hasLoggedIn),
setHasLoggedIn(true),
props.LoggedIn(hasLoggedIn))
.catch(error => console.error())
}
const Register = (event) => {
fetch("http://127.0.0.1:8000/users/accounts/api/auth/register",{
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(state.credentials)
}).then( data => data.json()).then(
data => {
console.log(data.token)
}
).catch(error => console.error())
}
const inputChanged = (event) =>{
const cred = state.credentials;
cred[event.target.name] = event.target.value
setState({credentials: cred})
}
return (
<div>
<label>
Username:
<input type='text' name='username'
value={state.credentials.username}
onChange={inputChanged}
/>
</label>
<br/>
<label>
Password:
<input type='password' name='password'
value={state.credentials.password}
onChange={inputChanged}
/>
</label>
<br/>
<button onClick={Login}>Login</button>
<button onClick={Register}>Register</button>
</div>
)
}
Это код, который я сделал из видео на youtube. Проблема возникает при попытке сохранить аутентификацию пользователей, если вы обновите этот код, вы потеряете токен, что означает, что вам придется войти снова.
Могу ли я как-то использовать аутентификацию сеанса Django с токенами?
Любая помощь будет принята с благодарностью. Заранее спасибо!