Мое приложение — это веб-приложение, размещенное в {N} WebView. Имя пользователя и пароль хранятся в localStore. Когда я выхожу из приложения и снова захожу, у меня нет данных, и мне нужно вернуться к входу в систему.
Может ли кто-нибудь помочь мне? или объяснить, как отлаживать веб-представление в приложении. веб-страница разработана с помощью Angular 4, а приложение — с помощью NativeScript.
чтобы иметь возможность использовать один и тот же метод входа в систему как в Интернете, так и на мобильных устройствах. Я использую его, чтобы пользователю не приходилось постоянно вводить пароль. Можете ли вы придумать способ сделать один и тот же вход для веб-сайта и приложения? Спасибо
Вы должны сохранить sessionId или что-то еще, что вы используете, чтобы убедиться, что сеанс действителен. ЛЮБОЙ, кто поможет вам с этой проблемой, может легко взломать ваш сайт и украсть данные всех ваших пользователей. НЕ продолжайте использовать этот метод.
С Android localStorage API не будут работать, пока вы не включите их. Вы можете включить его, обратившись к собственным настройкам WebView при загруженном событии.
export function onWebViewLoaded(args) {
const webView = args.object;
if (webView.android) {
webView.android.getSettings().setDomStorageEnabled(true);
webView.android.getSettings().setDatabaseEnabled(true);
}
}
Между тем, можете ли вы localStorage для сохранения конфиденциальной информации, такой как имя пользователя / пароль, здесь другой вопрос. Мой ответ будет нет, вы не можете использовать его, так как он легко / открыт для доступа. Как правило, вы должны войти в API с этими учетными данными, предоставленными пользователем, вам, вероятно, следует получить access token, который вы будете использовать для любого взаимодействия с сервером впоследствии. Вы можете сохранить этот токен на своем localStoage и очистить его при выходе из системы.
Пожалуйста, не помогайте этому разработчику создавать серьезную угрозу безопасности его сайта.
Можете ли вы объяснить немного об этом риске? Я обнаружил, что это решение работает для меня, но я не хочу иметь проблемы с безопасностью
@Noark Я знаю, что опаздываю, но я полагаю, что Микерс говорит о небезопасности метода аутентификации OP (он говорит, что хранит пароли непосредственно в localStorage). Он не говорит о какой-либо неуверенности, присущей NativeScript или localStorage.
Идеально, спасибо!! пример работает хорошо.
.html
<Page (loaded) = "pageLoaded($event)">
<GridLayout rows = "*" columns = "*">
<WebView #myWebView [src] = "webViewSrc" (loadStarted) = "onWebViewLoadStarted($event)"></WebView>
</GridLayout>
</Page>
-component (файл ts)
import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from "@angular/core";
@Component({
selector: "Home",
moduleId: module.id,
templateUrl: "./home.component.html",
styleUrls:['./home.component.css']
})
export class HomeComponent {
public webViewSrc: string = URL;
constructor(private routerExtensions: RouterExtensions) {
// Use the component constructor to inject providers.
}
onWebViewLoaded(args){
const webView = args.object;
if (webView.android) {
webView.android.getSettings().setDatabaseEnabled(true);
webView.android.getSettings().setLoadWithOverviewMode(true);
}
}
pageLoaded(args: EventData) {
let page = <Page>args.object;
page.bindingContext = new HomeViewModel();
}
}
Пожалуйста, не помогайте этому разработчику создавать серьезную угрозу безопасности его сайта.
Зачем хранить пароли в localStorage?