• Как организовать социальную аутентификацию через Socialite(Laravel)+JWTAuth+Vue.js без редиректа с API-сервера?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Работает у меня такая схема и в Ionic и в NativeScript.
    В общем схема везде одинаковая.
    Ionic:
    На Laravel нужен Socialite, на клиенте что-то в соответствии с фреймворком. Я использовал ng2-ui-auth. Еще вам нужно установить плагин InAppBrowser.
    Последовательность такая:
    1. В своем приложении вы жмете на кнопку "Войти через GitHub"
    2. Открывается InAppBrowser окно входа GitHub (в урле передается clientId вашего приложения и redirectUri, за это отвечает ng2-ui-auth).
    2а. Обратите внимание что redirectUri из запроса должен быть идентичен Authorization callback URL в настройках вашего приложения на сайте GitHub (Settings / Developer settings / OAuth Apps) и в случае Cordova должен быть равен "localhost:3000".
    3. GitHub авторизирует вас по логину/паролю, спросит разрешения передавать данные Приложению и редиректит страницу на redirectUri добавляя к нему токен.
    4. ng2-ui-auth перехватывает обращение к localhost:3000 (это делается с помощью JS, тут нет никакого локального сервера), достает токен и пересылает его на конечный url (указывается для каждого провайдера в настройках ng2-ui-auth).
    4а. Вот этот конечный url должен быть адресом вашего backend'а, а именно метода, который с помощью Socialite будет запрашивать данные пользователя у GitHub.
    5. С помощь Socialite вы получаете данные о пользователе у GitHub. Создаете пользователя в Laravel, если его нет, и делаете любые другие необходимы действия.
    6. Используя данные пользователя с помощью jwt-auth создаете jwt-токен и возвращаете его клиенту (в пункт 4).
    7. На клиенте запоминаете jwt-токен и тот факт, что пользователь аутентифицирован. Из ответа можете достать email (если вы его передали) и где-нибудь отобразить.
    Все!

    С NativeScript все абсолютно аналогично (там на клиенте я использую nativescript-oauth2) за исключением одного: в NS нет webview, поэтому перехват redirectUri выглядит по-другому:
    1. В Authorization callback URL на GitHub вы пишите что-то вроде blablabla://auth (вместо blablabla какая-то длинная уникальная строка - urlScheme).
    2. Эта urlScheme также пописывается в настройках nativescript-oauth2 и в App_Resources/Android/src/main/AndroidManifest.xml в виде intent-filter
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="blablabla" />
    </intent-filter>

    Приложение перехватывает обращение к этой уникальной urlScheme и дальше все продолжается согласно списка.
    Ответ написан
    1 комментарий
  • Как правильно возвращать ошибки в своем API, Laravel?

    Как основной индикатор ошибки API я использую HTTP статусы. Laravel из коробки поддерживает много случаев:
    • Если вы используете встроенную валидацию, то Laravel автоматически возвращает HTTP 422 и json массив с ошибками.
    • Если для получения модели вы используете метод Model::findOrFail(), то Laravel автоматически выбрасывает ModelNotFoundException и автоматически генерирует для него HTTP 404 ответ.
    • Laravel автоматически возвращает корректный HTTP 4xx ответ, если пользователь не авторизован.
    • В остальных случаях можно возвращать ошибки вручную, с использованием хелперов, например: abort(403, 'You don\'t have access to do that');

    Таким образом, вручную ошибки возвращать тоже придется, но в большинстве случаев Laravel сделает это за вас.
    Ответ написан
    Комментировать
  • Как вы делаете Real-Time приложения на Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Зависит от того, что за данные и сколько риал-тайма в проекте. Если в проекте абсолютно все риал-тайм, то я бы советовал глянуть на firebase или self-hosted аналоги (если найдете) - будет проще.

    Если же что-то попроще, то да, в этом случае сокеты.

    Но есть еще и long-polling.
    Ответ написан
    Комментировать
  • Как вы делаете Real-Time приложения на Laravel?

    lukoie
    @lukoie
    Это невозможно. Вы понимаете что такое риалтайм? Если у Вас даже ОС не является реалтаймовой, то как Вы себе представляете вебсервер с риалтаймом?

    Если же Вы просто хотите выводить какую то информацию, которая записывается в БД, то надо указать насколько критично тут время. То есть "риалтайм" для Вас это сразу - в течении ~1-5 секунд или в течении минуты.
    Вот тогда и можно будет знать подойдет ли для упрощения задачи что-то другое, или только пуш-уведомления и вебсокеты.
    Ответ написан
    2 комментария
  • Как вы делаете Real-Time приложения на Laravel?

    @ReDev1L
    Погуглите Server Side events(SSE).
    Они легче вебсокетов и сделаны как раз для этого. (вебсокеты - двусторонний канал, SSE - односторонний.)
    Ответ написан
    Комментировать
  • Какие есть storage drivers для Laravel в РФ?

    @assets
    Back-end developer
    Есть куча вариантов один них них
    https://github.com/nixsolutions/yandex-php-library...
    https://tech.yandex.ru/disk/doc/dg/concepts/api-me...

    Из разряда "подключил и работает" нету, под себя надо настройт.

    На сколько большой обьем?
    Ответ написан
    Комментировать
  • Какую литературу стоит прочесть архитектору ПО?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Мартина почитайте для просветления
    Ответ написан
    Комментировать
  • Есть ли сервис API для перевода денег с карт?

    Denormalization
    @Denormalization
    Никто в здравом уме не даст билить напрямую карты без https://ru.wikipedia.org/wiki/PCI_DSS
    Если же PCI DSS есть, то любой биллинг с радостью выдаст API.
    А вот за хранение всех данных карты + cvv можно не хило по башке получить + штраф.
    Ответ написан
    3 комментария
  • В какой момент пора использовать ООП?

    @vGrabko99
    html, css, js, php, golang, mysql
    Хотите понять зачем ООП? Поюзайте простенький фреймворк (к примеру Laravel 5). Изучите доки и т.д. сделайте простенький сайтик. И тогда я думаю вы поймёте как прелестна эта парадигма
    Ответ написан
    1 комментарий
  • Математика, есть ли специальные книги типа "матан за 24 часа"?

    AnnTHony
    @AnnTHony
    Интроверт
    Выгодский "Справочник по высшей математике", "Справочник по элементарной математике"
    Серия "Математика в техническом университете", издательство МГТУ имени Н.Э. Баумана (21 том по-моему)

    Сомневаюсь что осилите за 24 часа.
    Да и не та эта наука чтобы познать так быстро.
    Ответ написан
    2 комментария
  • PHP Development. Как осовременниться?

    Denormalization
    @Denormalization
    Конкретно для Laravel:
    • На сайте laravel есть подробная инструкция по установке.
    • На сайте laravel есть инструкция по настройке homestead.
    • По laravel снято миллион+1 видео laracasts


    Общее:
    По каждой технологии есть куча документации и примеров. Если вы не можете их найти, а тем более осилить - вы никудышный програмист, увольняйтесь и идите работать в макдак.
    Ответ написан
    3 комментария
  • Какие могут быть алгоритмы управления защитой данных?

    27cm
    @27cm
    TODO: Написать статус
    Классика на тостере: Пишу диплом по теме, в которой ничего не понимаю, посоветуйте, что почитать.

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

    Смените тему (а возможно и область) дипломной работы на ту, в которой вы разбираетесь.
    Вам самому станет легче, приятнее и интереснее работать над дипломом. А полученные результаты, возможно, пригодятся другим специалистам этой области.
    Ответ написан
    2 комментария
  • Верстаю сайт, получаю от заказчика "недочет" как быть)?

    zooks
    @zooks
    Frontend
    Такое нужно сразу оговаривать. Если видишь макет явно меньше или крупнее чем нужно - возвращаешь на доработку.

    Попробуй сделать грязный хак:
    body {
      zoom: 50%;
    }

    Неплохо бы увидеть пример верстки.
    Ответ написан
    2 комментария
  • Хочу на советском авто вывести всю электрику на планшет. Какие будут идеи?

    @lifeslice
    Планшет абсолютно непригоден для управления приборами при движении на машине.

    Это я говорю как автор устройства управления пневмоподвеской.
    Ответ написан
    Комментировать
  • Какой бесплатный онлайн-сервис ведения совместных трат выбрать?

    Jump
    @Jump
    Системный администратор со стажем.
    Жуть.
    Я бы с вами на шашлыки точно не поехал.

    На шашлыки ездят так - скинулись кто сколько смог, и поехали. И всем пофиг кто по сколько скинулся, и кто сколько съел.

    А как вы количество съеденных шашлыков подсчитываете? Может вам программа для андроида нужна, для подсчета съеденных шашлыков?
    Ответ написан
    1 комментарий
  • Корректно ли брать деньги с заказчика за рендер при часовой оплате?

    Владимир Боруткин Настоящие "еврейчики" рендерят на Pentium III ))
    Ответ написан
    Комментировать
  • Как повысить эффективность кода? Или такое поведение программы считается нормальным?

    Собрались тут элитарии и гопники, и те и другие набросились на человека... Фиг он ещё чего спрашивать будет. А он же старался, писал чего-то. Что - само по себе - похвально. Рефакторинг полезен, чтоб перейти от плохой программы к хорошей программе и по ходу дела понять, чем хорошая программа лучше плохой.

    Для начала.

    - Русские названия переменных не годятся. Русские слова, написанные транслитом, как названия не годятся тоже. Только английские слова.
    - Если вас заботит скорость, - зачем вы делаете сначала random.choice, а потом сравниваете результат (строку) с другой строкой? Используйте random.randint(0, 1), который выдаст вам одно из двух чисел; если нуль - орёл, единица - решка.
    Ответ написан
    4 комментария
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    dimakovalenko
    @dimakovalenko
    Я уже скоро полтора года как на фрилансе. Советую:
    • Подкопи деньжат, с пол тычка твой фриланс не заведется. Первое время денег не будет, будешь проедать накопленное.
    • Денег скопил? Не затягивай. Решил уходить - уходи.
    • Можно планировать что-то наперед, вот только жизнь этими планами все равно подотрется. Поэтому планируй, конечно, но смотри по ситуации и не расстраивайся если все получается "не так"
    • Получай кайф от свободы! Ты сам себе начальник, одинокий войен фриланса, самурай без хозяина. Живешь как хочешь, сам отвечаешь за себя, если что не по тебе - меняешь! Когда еще такая лафа в жизни будет?

    Удачи :)
    Ответ написан
    1 комментарий
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    kumaxim
    @kumaxim
    Web-программист
    Для начал ответь сам себе на вопрос "А чем тебе неудобна текущая золотая клетка"? Можешь не писать здесь, но определись для себя.

    Далее нужно осознать, что фриланс - это подвид бизнеса. Есть книжка Р.Киосаки "Квадрант денежного потока". Там всех людей, работающих в экономике разделяют на 4 части:
    1. Р - наемные работники
    2. П - предприниматели
    3. Б - бизнес
    4. И - инвесторы

    Фриланс - это сегмент П. Ты работаешь один, возможно зарабатываешь больше чем работая по найму, но вот ты заболел, продуло тебя где-то, температура 38.5.... Сомневаюсь что ты из стали сделан и сможешь в таком состоянии писать код.
    Сегмент П очень хорошо охарактеризовал г-н Залогин из Локус Медиа. Он сказал примерно так: "Вы человек-велосипед - пока крутите педали - едите, как только перестали - упали"

    Переходя к твоему вопросу о выходе из зоны комфорта.
    Первое что рекомендую перед началом своего бизнеса - оплати все долги. Закрой ипотеку, погаси автокредит, все потребительские заемы и т.д. В случае если ты провалишься(первый блин, обычно, комом) по крайней мере ты со своей семьей не под мостом окажешься.
    Второе - содержание семьи. Никакие твои заработки не должны влиять на твою жену/ребенка. Твои родные, как минимум, должны иметь крышу над головой + еду на столе. Посчитай сколько ты платишь за комуналку + еду. Далее умножаешь эту сумму на 24 месяца. Это финансовая подушка твоей семьи.
    Третье - планирование. Бизнес без бизнес-плана - это не более чем хобби. С 16 лет стремился зарабатывать в сети. Продавал ссылки на sape.ru в 2008-2009, работал с трафиком в 2010-2012, продавал китайские безделушки с 2013-2014... Сейчас ушел в разработку одного SaaS-решения. Первые пару месяцев оптимизм из ушей хлещет, думаешь "Да все будет, да это фигня, преодалею...." Но вот начинаются черные полосы: ТИЦ сайта в планируемый апдейт не вырос до нужного значения, твой сайт на 9 месте в выдаче, вместо требуемой тебе 3-4 позиции, товар из Китая на таможне завис.... Да я могу до бесконечности перечислять проблемы, которые возникали у меня... А время - деньги: тебе нужно платить аренду, зарплату, рекламу, кредиты и т.д. Не платишь - начинается ругань, из Максима Александровича я сразу превращаюсь в мошенника, кидалу, сволочь... эх, во общем суть ты понял. Думай на 2 шага вперед, вот что я хочу сказать
    Четверное - не делай бизнес с полного нуля. Перт Осипов(проект Бизнес Молодость) в каком-то из видео говорил, что мы не ценим самое ценное что у нас есть, мы воспринимаем это как должное, когда для других людей это может быть сравни бриллианту среди кучи стекляшек. Вы не первый день работайте в ИТ по какой-то специализации, так ведите эту специализацию и дальше. Занимайтесь своим любимым делом.
    Пятое - не пытайтесь все делать сами. Когда я запустил свой самый первый интернет-магазин по Китайским безделушкам я все делал сам: рисовал дизайн, верстал его, настраивал рекламу, обзванивал клиентов, носил товар на почту.... В общем занимался вообще всем! Причем за всей этой рутиной я не видел, что мой сайт работает не эффективно, я упускаю из виду 20% горячих клиентов, 10% моих бандеролей исчезают в глубинах Почты России... Вы как первое лицо компании должны знать все процессы своего предприятия, иначе Вы не сможете им управлять, но Вам не нужно все процессы делать самому. Отдайте часть на аутсорс или делегируйте наемному сотруднику.
    Шестое - я на этом очень сильно обжегся около 3-х лет назад.... Ставьте своим сотрудникам четко достижимые KPI(ключевые показатели эффективности). Например, есть у меня форма заказ обратного звонка на сайте. Человек пишет туда своего Имя и номер телефона, после чего эти данные попадают в CRM. Для менеджеров, которые у меня обрабатывают вызовы клиентов один из KPI звучит так: перезвонить клиенту в течении 15 минут после поступления от него заявки, если она поступила в рабочее время. Причем все KPI Вы должны сформулировать максимально точно и подробно. Я сам с KPI работаю так: есть у человека базовый оклад и базовый набор KPI, которые ему необходимо выполнять. Если он их выполняет - получает оклад, выполняет лучше - получает оклад + премию. Причем оклад у меня сам небольшой, около 6 т.р., но нижняя з/п у меня примерно в 2,5 раза выше.

    Первые 4 пункта - это как мягко выйти, вторые два - как не свалиться.

    В целом о бизнесе в РФ могу сказать что его делать относительно легко. Достаточно просто делать что-то хорошо и по человечески относится к своим клиентам. Примерно за 1 год Вы нарабатываете определенную базу контактов(поставщики/партнеры/клиенты), которые Вас знают и доверяют Вам. А далее главное все это не растерять.

    Вам могут все Ваши родные/коллеги/друзья говорить "Да ты что, сейчас санкции, налоги, коррупция..." Поверьте, все это херня! Под прессом можно работать и зарабатывать, причем когда его снимут - Вы получите взрывной рост. А все эти отговорки про санкции, коррупцию, высокие налоги... Да просто у кого-то очко играет!
    Ответ написан
    14 комментариев
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    С учетом нынешнего курса - 3k евро в месяц на руки - это отличные деньги для не руководящей должности и очень неплохие для руководящей.
    Даже если на фрилансе получится зарабатывать сопоставимые деньги - геморроя будет в разы больше.
    Есть вариант работы по рекомендациям за большие деньги - но к этому надо целенаправленно идти, и опять же никакой стабильности.

    Уход в свой бизнес кажется мне более интересным в финансовом смысле - но потребует от Вас совершенно других навыков и полного изменения жизни.
    Ответ написан
    2 комментария