Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/authorization #31

Merged
merged 88 commits into from
Jul 1, 2024
Merged

feat/authorization #31

merged 88 commits into from
Jul 1, 2024

Conversation

kirill-ivanovvv
Copy link
Member

@kirill-ivanovvv kirill-ivanovvv commented Jun 19, 2024

closes #30
closes #34

@kirill-ivanovvv kirill-ivanovvv changed the title yarn feat/authorization Jun 19, 2024
server.mjs Outdated Show resolved Hide resolved
app/entrypoints/renderer/package.json Outdated Show resolved Hide resolved
@kirill-ivanovvv
Copy link
Member Author

@Nelfimov review request

@kirill-ivanovvv kirill-ivanovvv marked this pull request as draft June 20, 2024 16:43
@kirill-ivanovvv
Copy link
Member Author

допишу получение данных для этой штуки, потом сольем
image

@kirill-ivanovvv
Copy link
Member Author

добавил ветку. в ней последние изменения

@kirill-ivanovvv
Copy link
Member Author

Ну и с версткой беда:

@ssagg поправишь верстку?

@effektivnayarabota1 принял. у @Nelfimov safari и скролл там совсем дико выглядит. Надо в других браузерах чекнуть.

скролл реально мясной

@kirill-ivanovvv
Copy link
Member Author

весь день разбирался с email
в итоге получил его через косоль, код ниже

curl --request GET \
--url "https://api.github.com/user" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer USER_ACCESS_TOKEN" \
--header "X-GitHub-Api-Version: 2022-11-28"

  • запрос email делаю по тому же ключу, что с сервера
  • на сервер 'email' приходит в виде пустой строки
  • пробовал запрашивать через Rest Api
  • пробовал запрашивать юсера по логину (сейчас запрос через viewer(авторизированый user))
  • не приходит именно email

проблема не в ключе и приложении, проблема в запросе

@kirill-ivanovvv
Copy link
Member Author

kirill-ivanovvv commented Jun 28, 2024

  • проверить endpoint через curl
curl -H "Authorization: bearer TOKEN" -X POST -d " \
 { \
   \"query\": \"query { viewer { login }}\" \
 } \
" https://api.github.com/graphql
  • если email приходит, то ошбка в интерфейсе octokit, используй другой
  • если не приходит, то ошибка с endpoint, либо неправильно сформирован запрос. перепроверь ключ на rest (curl в предыдущем сообщении)

  • ключ корректный, т.к. Rest Api возвращает email
  • curl на qraphql, email не возвращает, при испльзовании сгенерированного ключа
  • curl на qtaphql возаращает email, при использовании personal access tokken

  • запрос по ключу без разрешений не дает ошибку, возвращает пустую строку

@kirill-ivanovvv
Copy link
Member Author

  • поменял GhApp приложение на oAuth

  • graphql запрос через curl работает - email получаем

  • octokit интерфейс авторизации поменял на fetch

  • запрос с сервера не тестировал, но должно работать


  • в документации указанно, что можно GitHub app использовать для авторизации аналогично oAuth, по факту у меня не получается им так пользоваться
  • если я сейчас сделаю авторизацию через oAuth, хватит ли нам функционала oAuth app для дальнейшей работы?
  • в документации указанно, что разница oAuth и GhApp лишь в настройке разрешений, и GhApp можно использовать, помимо "от лица пользователя" еще и "от лица приложения", поэтому рассчитываю, что хватит.

  • сейчас протестирую graphql запрос с сервера - если все ок, причешу код, запушу

curl -H "Authorization: bearer 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" -X POST -d " \
 { \                                                                  
   \"query\": \"query { viewer { email }}\" \
 } \
" https://api.github.com/graphql
{"data":{"viewer":{"email":"[email protected]"}}}

@kirill-ivanovvv
Copy link
Member Author

kirill-ivanovvv commented Jun 28, 2024

@Nelfimov верской занимается Александр, проверяем авторизацию, у нас не подгружался email

@kirill-ivanovvv
Copy link
Member Author

вот этот хук выполняется в клиентском компоненте ('use client'), но ошибка падает в серверную консоль.
не понимаю почему
обертку сделал, все работает. посто не могу понять.

app-1   |   ReferenceError: window is not defined
app-1   |     at checkErrorHook (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/check-error.hook.ts:6:33)
app-1   |     at RootLayoutClient (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/root-layout.client.tsx:20:109)
app-1   |   1 | export const checkErrorHook = () => {
app-1   | > 2 |   const CURRENT_URL = new URL(window.location.href)
app-1   |     |                              ^
app-1   |   3 |   const { searchParams } = CURRENT_URL
app-1   |   4 |   const errorMessage = searchParams.get('errorMessage')
app-1   |   5 |   const errorCode = searchParams.get('errorCode')

Nelfimov
Nelfimov previously approved these changes Jul 1, 2024
@Nelfimov
Copy link
Member

Nelfimov commented Jul 1, 2024

вот этот хук выполняется в клиентском компоненте ('use client'), но ошибка падает в серверную консоль. не понимаю почему обертку сделал, все работает. посто не могу понять.

app-1   |   ReferenceError: window is not defined
app-1   |     at checkErrorHook (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/check-error.hook.ts:6:33)
app-1   |     at RootLayoutClient (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/root-layout.client.tsx:20:109)
app-1   |   1 | export const checkErrorHook = () => {
app-1   | > 2 |   const CURRENT_URL = new URL(window.location.href)
app-1   |     |                              ^
app-1   |   3 |   const { searchParams } = CURRENT_URL
app-1   |   4 |   const errorMessage = searchParams.get('errorMessage')
app-1   |   5 |   const errorCode = searchParams.get('errorCode')

Сделай проверку на наличие window.

Скорее всего у тебя выполняется хук до момента когда он "прогрузился" в браузере. Тебе бы туда useLayoutEffect

@kirill-ivanovvv
Copy link
Member Author

вот этот хук выполняется в клиентском компоненте ('use client'), но ошибка падает в серверную консоль. не понимаю почему обертку сделал, все работает. посто не могу понять.

app-1   |   ReferenceError: window is not defined
app-1   |     at checkErrorHook (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/check-error.hook.ts:6:33)
app-1   |     at RootLayoutClient (../../../../.yarn/__virtual__/@app-root-layout-virtual-ca4000c068/1/app/fragments/app-root-layout/src/root-layout.client.tsx:20:109)
app-1   |   1 | export const checkErrorHook = () => {
app-1   | > 2 |   const CURRENT_URL = new URL(window.location.href)
app-1   |     |                              ^
app-1   |   3 |   const { searchParams } = CURRENT_URL
app-1   |   4 |   const errorMessage = searchParams.get('errorMessage')
app-1   |   5 |   const errorCode = searchParams.get('errorCode')

Сделай проверку на наличие window.

Скорее всего у тебя выполняется хук до момента когда он "прогрузился" в браузере. Тебе бы туда useLayoutEffect

все добавил

@Nelfimov Nelfimov merged commit da252db into master Jul 1, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

refactor/sidebar feat/authorization
3 participants