• Авторизация и регистрация для desktop приложения на Java, как лучше сделать?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Если по простому,а судя по вопросу это именно так, то как то так.
    Для начала вникаем что такое авторизация и регистрация и из чего состоит. Получится что есть клиент и сервер.
    Клиент для регистрации должен сказать желаемый логин и пароль. Для авторизации можно чуть усложнить и работать по 2м схемам, Первый когда клиент скажет серверу логин и пароль. Во втором логин и токен.
    *Токен тут получается после авторизации, его генерирует сервер и сообщает клиенту. Используется для минимальной защиты потому как на клиенте можно не хранить пароль а хранить только логин и токен.
    Сервер в свою очередь ждет от клиентов логин и пароль, после получения которых проверяет в своем хранилище(бд например) и отвечает клиенту сообщением состояния(ок, логин занят,ошибка, пароль простой и т.д.). Дальше он ждет от этого клиента авторизацию по одному из двух способов которая может быть по логину и паролю, тут сервер ответит также сообщением(сгенерирует токен, ошибка пароль\логин не верный). 2й вариант что ожидается логин и токен , ответ будет (ок, ошибка токен не верный).

    Общаться клиент и сервер естественно будет по сети а вот как решать уже вам. Это может быть:
    1) Голые сокеты, проще для понимания т.к. никаких библиотек уже не будет и собственно весь протокол будет ваш.
    2) Использовать какую нибудь rest подобную систему. К примеру тупо взяв сервер с php и сделать нечто похожее(понимаете смысл надеюсь) на register.php и auth.php. Соответсвенно запросы с клиента уже будут идти тупо по http
    3) Взять че покруче и на порядок сложнее, к примеру netty. Круче сокетов но сложнее в пару сотен раз хотя сделать придется по сути тоже что и на сокетах.
    4) Какой нибудь сетевой движек, к примеру kryonet. Тут конечно уже ближе к играм но почему нет? Придется читать доки и следовать принципам библиотеки, ниразу не узнав что такое сериализации и зачем она нужна.

    Для практики потом можно усложнять схему, к примеру чтобы сервер уже не просто смотрел на логин и токен клиента но и еще на его ip чтобы он совпадал. Можно обернуть все это шифрованием, реализовываться будет по разному в зависимости от того каким путем пойдете. Реализовать еще и временный токен этой сессии или же тупо еще одним параметром от клиента типа что за устройство, тогда клиент под одним логином сможет авторизоваться одновременно с нескольких устройств и никто никому мешать не будет.

    В более серьезных проектах примерна такая же схема как я описал выше но доработанная в пару тысяч раз толще на любой чих и случай жизни.

    Конкретно для javafx я тут вообще в этой теме ничего не вижу да и вообще быть ничего не может т.к. это всеголишь библиотека для отрисовки интерфейса программы с коллекциями предназначенными помочь это сделать еще удобнее. Аналогично ей существуют еще ее предшественники awt и swing которые посложнее но темнеменее работают и легче по ресурсам.
    Ответ написан
    4 комментария
  • Как изменить имя пользователя, которые отображается в пути?

    Norco-77
    @Norco-77
    Создай нового пользователя, войди под ним, а старого юзера удали - всего делов..
    Ответ написан
    2 комментария
  • Как округлить произвольное десятичное число без встроенных функций round и модуля math?

    15432
    @15432
    Системный программист ^_^
    def my_round(number, digits):
      multiplier = pow(10.0, digits)
      return int (number*multiplier + 0.5) / multiplier
    Ответ написан
    3 комментария
  • Как округлять с отрицательной точностью?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    my_round(123,-2) = 100.

    Точность говорит, что все цифры после этого индекса должны быть 0. А предыдущая, может увеличится на 1, в зависимости от правил округления.
    Ответ написан
    Комментировать
  • Как вернуть map из функции и использовать его в другой функции?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    map<int,int> f(x) {
    ...
    }
    
    map<int, int> mp = f(x);
    Ответ написан
    1 комментарий
  • Как заполнить map английскими буквами и вывести его?

    @Mercury13
    Программист на «си с крестами» и не только
    Потому что map — это функциональное соответствие. Одному ключу соответствует одно значение.
    Или используйте multimap. Или варьируйте ключ, а не делайте жёсткой единицей.
    Ответ написан
    Комментировать
  • Как представить struct в pascal?

    @galaxy
    В чистом Паскале нет классов, поэтому структуру с методами (в частности, с конструктором) сделать не получится.
    Аналогом C-структур в Паскале является составной тип record:
    type TName = Record
           Str: String[20];
           Log: Boolean
         end


    Хотите аналоги классов C++ - берите Object Pascal, например, в составе Delphi или Lazarus
    Ответ написан
    1 комментарий
  • В каком случае программа выдает ложный результат?

    @Mercury13
    Программист на «си с крестами» и не только
    T = 4, X = 2, N = 1. Получаются 2 минуты, хотя надо четыре.
    Надо не ceilDiv(nt, x), a t·ceilDiv(n,x).
    Ну и с такими ограничениями ceilDiv(n, x) = (n + x - 1) / x, без дробной арифметики.
    (Собирая всё в одно выражение, не забывайте скобки!)
    Ответ написан
    3 комментария
  • Какого размера числа способен сосчитать js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Наибольшее «безопасное» целое 253-1 или 9007199254740991
    Числа больше будут записываться неточно, в экспоненциальной нотации, и возможны косяки, например
    var a = 9007199254740991 + 1;
    var b = 9007199254740991 + 2;
    a === b; // true

    См. MAX_SAFE_INTEGER

    В вашей задаче стоит работать не с целыми, а со строками.
    Ответ написан
    4 комментария
  • Какого размера числа способен сосчитать js?

    Stalker_RED
    @Stalker_RED
    Это не от языка зависит, а от движка.

    Посмотрте константу Number.MAX_SAFE_INTEGER // -> 9007199254740991
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    В другой среде число может отличаться.
    (другой браузер, другая операционка, телефон, вот это все)
    Если сегодня вы не нашли систему, где оно отличается, это еще не значит, что завтра такая не появится.
    Ответ написан
    1 комментарий
  • Как сделать чтобы функция повторилась N количество раз?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно поместить в массив функции, и каждый раз при срабатывании заменять на следующую:
    var button = document.getElementById('btn');
    
    function f1() {
      button.disabled = true;
      button.onclick = todo.shift(); // заменили обработчик на следующий из очереди
      var timeoutID = setTimeout( /* запуск таймера */
      	function() { button.disabled = false},
      	1000
      );
    }
    
    var todo = []; // очередь одноразовых задач
    todo.push(f1,f1,f1); // три раза f1, потом добавьте "другие" - f2, f3
    button.onclick = todo.shift(); // зарядить первую


    Fiddle
    Ответ написан
    2 комментария
  • Можно ли выходить с такой вёрсткой на фриланс?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Выходить на фриланс можно с чем угодно. На каждый товар свой покупатель, своя цена. Со временем товар станет лучше, цена увеличится.

    По Вашему сайту:
    • почему карта не интерактивная? Заказчики это любят, как бы не оправдано это не было в тех или иных случаях.
    • Почему меню не работает?
    • Ошибки в консоле почините. Там со шрифтами траблы
    • Зачем украли логотип у Adobe?

    ______________________________________________________________________________
    С js и jq я не дружу

    Подружитесь. Без этого сегодня ни как. А уровень использования чужих скриптов я могу представить, если Вы не понимаете как они работают. js или jquery - это обязательно сегодня.
    Ответ написан
    Комментировать