Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Авторизация SSO


  • Авторизуйтесь для ответа в теме
3 ответов в теме

#1
Fes2010

Fes2010

    Newbie

  • Tech I Pilots
  • 1 сообщений
0
  • Client:Рус

Решил сделать небольшую програмульку, которая бы подсчитывала переработку. Разбил задачу на такие этапы:

1. Авторизация

2. Получения данных о навыках

3. Подсчет переработки с учетом навыков

Начал копать , что бы сделать авторизацию и просто утонул в куче устаревшей и малоактуальной инфы. Насколько я понял авторизация для настольного приложения сейчас делается при помощи SSO. Но не смог найти подробной информации с примером. Если кто то может поэтапно расписать, что нужно куда отсылать, регистрировать и парсить, то буду безмерно благодарен)


  • 0

#2
Cloned Mark

Cloned Mark

  • -10.0
  • PipPipPipPipPip
  • 1871 сообщений
212
  • EVE Ingame:Cloned Mark
  • Corp:Slozhno
  • Ally:MI22
  • Client:Eng

http://eveonline-thi.../sso/index.html

 

Тут читать пробовал?

 

TL;DR:

1) Региcтрируешь свое приложение с нужными тебе разрешениями https://developers.eveonline.com/

Указываешь там Callback URL.

2) Из приложения посылаешь пользователя по особым образом оформленной ссылке с параметрами, в которых есть полученный на первом этапе айдишник приложения, разрешения и Callback URL.

3) Ссылка забрасывает пользователя на login.eveonline.com, там он смотрит на запрашиваемые разрешения и соглашается с ними, нажимая ОК. После этого браузер редиректит его на тот адрес сallback'а, который ты выбрал. 

4) Ты должен как-то "поймать" переход по этой ссылке, т.к. в ее параметрах будет специальный код, который тебе нужен на следующем шаге.

5) С помощью кода из полученного callback'а и своего секретного кода приложения с первого шага делаешь реквест на нужный адрес (см. документацию), в респонзе ты получишь JSON с access token'ом и refresh token'ом.

 

Access token действителен 20 минут с момента выдачи, Refresh бесконечный, с его помощью ты можешь делать повторные запросы и снова получать обновленные акцесс токены.

 

 

А сами акцесс токены вставляются в запрос нужных тебе данных, тех же скиллов. Само собой, для получения данных у твоего приложения должны быть при создании выбраны нужные скоупы, которые пользователь увидит и даст тебе разрешение. В твоем случае, нужно иметь разрешения на запросы к: /characters/{character_id}/skills/. Перечень доступных эндпойнтов смотри на https://esi.tech.ccp.is/latest/

 

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

По сути для личного пользования тебе надо только получить строчку authid из этой ссылки, так что можешь там прописать в Callback URL в настройках приложения на сайте какую-то бессмыслицу на localhost, и ручками его из строки адреса себе скопировать на первый раз до получения refresh token'а, после которого необходимость куда-то в браузере логиниться отпадает навсегда, т.к. дальше все работает на http-реквестах из кода приложения.


Сообщение отредактировал Cloned Mark: 13 December 2017 - 17:11

  • 2

Specially for Numator!


#3
Sir Zak

Sir Zak

    меня трудно найти легко потерять и невозможно забыть

  • Tech III Pilots
  • PipPipPipPipPip
  • 2856 сообщений
2179
  • EVE Ingame:DJ BASIL
  • Corp:X-OPS
  • Ally:N/A
  • Channel:Baraboom
  • Client:Eng

Для десктопа, поднимаешь http сервер и ловишь cb

Почти во всех языках вменяемых, есть либы.


  • 0

0cd6077657ba7f6fe393e83750b9a449.png


#4
elrond1

elrond1

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 429 сообщений
-11
  • Client:Eng

если как у меня входящие соединения на десктоп не проходят, можно браузером запустить свое приложение с аргументом коллбека ( по принципу как торрент клиент запускается по клику на торрент ссылку в браузере)


  • 0




1 посетителей читают тему

0 members, 1 guests, 0 anonymous users