Реализация Oauth2 с нуля - PullRequest
1 голос
/ 08 марта 2020

Я хочу реализовать протокол Oauth2 с нуля в учебных целях. Я следую руководству Github после создания приложения с идентификатором клиента и секретом клиента.

Два источника информации довольно просты:

https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/ https://gist.github.com/technoweenie/419219

В частности, я начинаю с первого шага вставки в моем браузере:

https://github.com/login/oauth/authorize?client_id=&redirect_uri=http: // localhost: 8080 / auth / temp & scope = user & state = & allow_signup = true

У меня есть приложение Spring, прослушивающее порт 8080 (я не хочу использовать Spring Security, потому что я хочу реализовать протокол с нуля) с открыта следующая и рабочая конечная точка:

@RequestMapping("/auth/temp")
public String redirectAuth(HttpServletRequest request) {
    //TODO implement next steps
    return "here we are!";
}

но когда я go на github-ссылку, я получаю ошибку 404 not found, так как мое приложение localhost не существует.

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

Итак, что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Вы не включили client_id в URL авторизации:

https://github.com/login/oauth/authorize? client_id = & redirect_uri = http://localhost: 8080 / auth / temp & scope = user & state = & allow_signup = true

Серверу авторизации (GitHub) необходимо это значение для идентификации зарегистрированного клиента.

0 голосов
/ 08 марта 2020

Github поддерживает только код авторизации oauth 2 потока. Может быть полезно прочитать об этом.

У меня есть блог и видео о потоке кода авторизации, которые могут помочь.

Отказ от ответственности: я работаю над ними и создал их для Ping Identity, но я думаю, что они будут полезны даже для ваших учебных целей.

https://developer.pingidentity.com/en/blog/posts/2019/what-are-oauth-2-0-grant-types-part-1-authorization-code-flow.html

https://youtu.be/eg7I8x-u0sc

...