Closed kirill-ivanovvv closed 3 months ago
В дополнение для работы с GitHub - https://www.npmjs.com/package/octokit
@Nelfimov подскажи пожалуйста как graphQl сервер создать?
А зачем тебе сервер? Твое основное взаимодействие - GitHub GraphQL
@Nelfimov
не могу понять, как сделать авторизацию через octokit
, сделал вот так
сейчас сохраняемся в куки, без соли.
в текущем варианте есть middleware
, который записывает в куки ключ с гитхаба, потом этот response
передается в api-route
, который делает редикет домой
. я добавил middleware
, потомучто не получилось записать куки в ендпоинте. вопрос лишь в том, возможно ли так сделать? (что-то мне подсказывает что можно)
знаю библиотеку iron-session, будем на неё переделывать или какоето похожее решение?
у гитхаб-приложения есть ключи, которые я хотел бы поместить в .env
эти переменные компонент не видит, как я понял потому-что 'use client'
, как это можно исправить? или другой способ передавать ключи.
- не могу понять, как сделать авторизацию через
octokit
, сделалвот так
сейчас сохраняемся в куки, без соли.
Грубыми мазками:
octokit
в текущем варианте есть middleware, который записывает в куки ключ с гитхаба, потом этот response передается в api-route, который делает редикет домой. я добавил middleware, потомучто не получилось записать куки в ендпоинте. вопрос лишь в том, возможно ли так сделать? (что-то мне подсказывает что можно)
ты ведь можешь программно записать куки. Зашли в приложение - регистрация/авторизация в github (можешь сделать тестовое личное приложение) - ловишь в ответ креды - сохраняешь в куках.
знаю библиотеку iron-session, будем на неё переделывать или какоето похожее решение?
Пока не будем усложнять
у гитхаб-приложения есть ключи, которые я хотел бы поместить в .env эти переменные компонент не видит, как я понял потому-что 'use client', как это можно исправить? или другой способ передавать ключи.
Нужен префикс NEXT_PUBLIC
чтобы браузер видел env. Иначе они остаются на сервере.
Грубыми мазками:
- авторизоваться в GitHub
- получить от них токен
- этот токен использовать в
octokit
- хранить можешь в куках
это готово. думал что через октокит
можно и авторизацию сделать
@Nelfimov
octokit
у нас будет делать запросы на уровне fragments
, не на уровне pages
?globals/data
будет норм?
octokit
у нас будет делать запросы на уровнеfragments
, не на уровнеpages
?
По структуре кода - fragments
.
А вот для того чтобы нам получать данные еще на сервере, чтобы не было "морганий" получения данных на клиенте - pages
.
- куда разместить объект авторизации (см скриншот)? Если он будет переиспользоваться по всему приложению, то в
globals/data
будет норм?
Да, можно. Надо еще понимать нужно ли тебе этот стейт использовать по приложению в разных кусках. Если да - то еще дополнительно делать stores/user
если ты это скидываешь себе на память, то лучше
- дискуссии
подскажи что такое дискуссии
@effektivnayarabota1 подключил сейчас
@effektivnayarabota1 @Nelfimov через octokit запросы в гит идут. мы можем этот пакет использовать и для запросов? или надо через useQuery от apollo? сделали тестовую организацию. на ней будем тренироваться. ` const dataOrg = await octokit.graphql(query{
organization(login: "ssagg-test") {
name
teams(first: 100, after: null) {
nodes {
members {
nodes {
avatarUrl
name
email
id
organizations(first:100){
nodes{
id
name
avatarUrl
}
}
}
}
name
}
}
}
}) `
Octokit без Apollo - норм. Только рассмотрите ещё graphql codegen для типизации запросов https://the-guild.dev/graphql/codegen
apollo
не нужен
С чем связан запрос на фичу?
Сервер
Расскажите как вы это себе видите
В процессе
Definition of done (критерий готовности)
В процессе
Приложите пример реализаций
No response
Приложите материалы задачи
creating oAuth app Authorizing OAuth apps
https://github.com/octokit/auth-oauth-user.js?tab=readme-ov-file#usage-with-octokit