Задать вопрос
Контакты
Местоположение
Россия, Новосибирская обл., Новосибирск

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (48)

Лучшие ответы пользователя

Все ответы (115)
  • Почему гугл не индексирует компоненты VUE?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    А чего вы, собственно, хотели? Боты - они же простые как три рубля. Их задача быстренько индексировать страницу. Представьте сколько нужно ресурсов, чтобы исполнять JS на каждой странице... Да и зачем? Если разработчику нужно индексировать Vue, то он потратит на это свои ресурсы.
    То, о чем вы пишите, называется SSR. Не знаю в каких таких "статьях" вы читали про гугл, но есть официальная дока про SSR на сайте Vue:
    https://ssr.vuejs.org/ru/
    Ответ написан
    Комментировать
  • Как организовать социальную аутентификацию через 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 комментарий
  • Как правильно сделать такой запрос средствами laravel?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    DB::table('products')
       ->select(['products.id', 'categories.category_filter_by'])
       ->join('categories_relationship', 'products.id', '=', 'categories_relationship.object_id')
       ->join('categories', 'categories.category_id', '=', 'categories_relationship.category_id')
       ->get();
    Ответ написан
    4 комментария
  • Доступ ко многим через отношения. Как подобраться?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Модели (и отношения соответственно) нужны в том случае, когда вы собираетесь работать с ними как с моделями, т.е. изменять, сохранять, использовать другую "магию". Но если вам нужно получить данные, которые вы не собираетесь изменять (отобразить, посчитать, использовать в других запросах), то используйте для этого обычный Query Builder (https://laravel.com/docs/8.x/queries) и делайте любые join'ы, какие заблагорассудится.
    Имейте в виду, что не всякий запрос возможно (или удобно) делать с помощью Eloquent, особенно когда речь идет о функциях агрегирования.
    Ответ написан
    1 комментарий
  • Как сделать sql dump в папку с локалхоста перед коммитом в windows?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Павел, я предложу вам совершенно иной вариант. ;)
    Очевидно, что содержимое базы у вас используется для тестирования. Вы хотите в любой момент получить базу с консистентными и знакомыми вам данными, чтобы продолжать работу.
    Я не знаю используете ли вы какой-то фреймворк или нет, но если вы делаете сайт не совсем уж на коленке, то посмотрите документацию по слову Seed.
    Предложение состоит в следующем - написать сидер, который будет наполнять вашу базу консистентными данными. Вы будете точно знать что в БД все хорошо и станете добавлять в сидер новые данные по ходу развития проекта.
    Таким образом вам не нужен будет дамп, т.к. в любой момент вы можете создать консистентную базу с нуля.
    В качестве примера ссылка на доку Laravel: https://laravel.com/docs/5.7/seeding
    Ответ написан
    5 комментариев

Лучшие вопросы пользователя

Все вопросы (23)