У меня есть веб-приложение, в котором требуется взаимодействие всех взаимодействий. Я вижу, по крайней мере, два способа реализации просмотра страницы входа в систему AngularJS.Страница входа в AngularJS
Следует использовать отдельный вид: скажем, я использую angular-ui-router и определяю вид верхнего уровня с двумя состояниями: логином и приборной панелью.
myApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/login");
$stateProvider
.state('login', {
url: "/login",
templateUrl: "partials/login.html"
})
.state('mainpage', {
url: "/mainpage",
templateUrl: "partials/mainpage.html",
controller: function($scope) {
…
}
});
Во-вторых, это просто использовать нг-если:
<span ng-if="loggedin">
… my main page …
</span>
<span ng-if="!loggedin">
… login page …
</span>
Я вижу, что второй вариант будет легко разрешить пользователям ссылки на конкретные разделы своих страниц, с страница Войти показ при необходимости автоматически, тогда как первый вариант потребует от меня кода некоторых перенаправлений, чтобы это произошло.
Однако по какой-то причине я чувствую, что первый вариант чище, даже если я не могу предоставить разумные аргументы.
Я начинаю с AngularJS сейчас, поэтому у меня недостаточно опыта, чтобы принять решение по любому из этих вариантов. Какой из них более желателен?
Как вы будете хранить данные для входа? На сервере как данные сеанса? – Jess
Я не могу придумать много вариантов использования, где возможен второй вариант. – Shomz
@ Джесс: это действительно имеет значение? В этом случае приложение использует веб-порты для подключения к серверу, отправки данных аутентификации (логин, пароль, одноразовый пароль из токена) и получает куки-маркер, который можно использовать для перезагрузки страницы без входа в систему в течение часа. Файл-токен хранится в каком-то локальном хранилище браузера. Переменная 'loggedin' является логической, которая в основном говорит, что текущий токен-файл cookie остается в силе. – liori