Когда я регистрируюсь, мой логин должен быть сохранен, я не хочу вводить пароль userName каждый раз при входе в систему.

Под моим кодом:

login() {
        this.userService.login(this.user)
            .subscribe(
            (response: any) => {
                this.router.navigate(["/dashboard"]);
            },
            (error) => alert(error)
            );
    }

UserService.ts

 return this.http.post(
      url,
      JSON.stringify({
        name: user.email,
        password: user.password
      }),
      {
        headers: new HttpHeaders().set('Content-Type', 'application/json'),
        responseType: 'text'
      }
    )
      .map((response: any) => {
        for (var x in response) {
          if (response.hasOwnProperty(x)) {

          }
        }
        console.log("_body: " + response._body);
        return response._body;
      })
      .catch(this.handleErrors)
  }
1
Nayeem Mansoori 20 Авг 2018 в 12:47

5 ответов

Лучший ответ

NativeScript представил модуль настроек приложения. Модуль «Настройки приложения» используется для хранения строк, логических значений и чисел во встроенном хранилище ключей / значений. Использует SharedPreferences на Android и NSUserDefaults на iOS.

Так, например, вы можете сохранить информацию для входа и использовать ее, чтобы проверить, был ли пользователь уже вошел в систему (так же, как вы это делаете в собственных проектах Android и iOS) - демонстрационный POC здесь

3
Nick Iliev 20 Авг 2018 в 10:22

Следует иметь в виду, что любые ключи и значения записываются в UserDefaults и SharedPreferences, то есть в собственные API, которые используются модулем настроек приложения, а также getString и {{X3} } методы просто хранятся на диске, чтобы каждый, у кого есть доступ к телефону, мог их видеть. Этот API-интерфейс не предназначен для хранения конфиденциальных данных и предназначен исключительно для сохранения пользовательских настроек, поэтому «значения по умолчанию» и «настройки».

Если вам нужен способ безопасного хранения адресов электронной почты и паролей на устройстве, взгляните на эту библиотеку: Nativescript - безопасный - хранения. Он очень похож на вышеупомянутые API, но все зашифровано, поэтому люди не могут просто читать содержимое с диска.

2
JillevdW 12 Июл 2019 в 08:53

Как и @Nick, вы можете использовать application-settings для хранения вашего токена доступа, который вы можете использовать для последующей проверки в дальнейшем когда пользователь вернется.

После успешной первоначальной попытки входа в систему, получите свой токен JWT из процесса входа (или любого другого режима аутентификации, который вы выберете) и сохраните его для повторной аутентификации позже или просто проверьте, установлен ли ранее ключ / [значение] и может ли он использоваться для простого офлайн логин.

1
KielSoft 21 Авг 2018 в 01:34

Используйте JWT, также вы можете использовать автономные данные. посмотрите на эту ссылку, например: https: // medium .com / @ njwest / строительство - а- реагировать - нативной JWT - клиент -API -запросы , и - asyncstorage - d1a20ab60cf4

0
Amin Noura 20 Авг 2018 в 10:21

Вы можете использовать локальное хранилище.

Ты можешь иметь

<TextField hint="{{ 'user_name' | L }}" autocorrect="false" required autocapitalizationType="none" [(ngModel)]="model.email"
                #emailModel="ngModel" name="email" keyboardType="email"></TextField>

При входе в компонент сохраните его в локальном хранилище

localStorage.setString("username", this.model.email);

В ngOnInit () вы можете получить его обратно

localStorage.getString("username");
0
Rajan Phatak 20 Авг 2018 в 10:41
51928060