Когда авторизуюсь на своем сайте, в истории просмотров на сафари в url адресе видно параметры заполненной формы: логин и пароль. Из-за чего такое может быть?
В более новых устройствах на том же сафари уже нет такой проблемы, на андройдах тоже нормально.
ios 9.0.2
Код:
1. Сабмит формы
function onSubmit(data: UserData) {
setErrorMessage('');
setError(false);
if(!validatePhone(data.username)) {
setPhoneError(true)
return false;
}
else{
data.username = data.country_code + data.username.replace(/[^0-9]/g, '');
setPhoneError(false)
}
AuthService.login(data as UserData).then(async token => {
await AuthService.auth(token);
store.dispatch(addFeedNotifications([{type: 'success', title: 'Вход успешно выполнен!', text: ''}]))
if (redirectBack) Router.back();
else redirect('/');
}).catch(() => {
store.dispatch(addFeedNotifications([{type: 'error', title: 'Ошибка!', text: 'Неверно введен логин или пароль.'}]))
});
}
2. Логин
static async login(data: GetTokenData) {
const res = await post<GetTokenSuccess>('/api/login/', data);
return res.data.token;
}
3. Авторизация и получение инфы о юзере по токену
static async auth(token?: string) {
if (!Axios.defaults.headers.Authorization && !token) return;
if (token) {
setCookie('authtoken', token);
Axios.defaults.headers.Authorization = `Token ${token}`;
this.getUserData();
}
let currentUser = store.getState().user.currentUser;
if(!currentUser) {
store.dispatch(requestUser());
return await get<User>('/api/socialnetwork/auth/').then(async res => {
const user = res.data;
store.dispatch(receiveUser(user));
store.dispatch(receiveUsers([user]));
await this.getUserData();
return user;
}).catch(_err => {});
}
}