From 2d8a7c38e0d688eac5b1fd8e12d8f930e7515cdd Mon Sep 17 00:00:00 2001 From: Maygician Date: Mon, 5 Oct 2020 22:20:08 +0700 Subject: [PATCH] gh example implementation 0.0.1 --- lp/lib/lp_web/controllers/git_controller.ex | 32 +++++++++++++++++++-- lp/lib/lp_web/templates/git/oauth2.html.eex | 5 ++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lp/lib/lp_web/controllers/git_controller.ex b/lp/lib/lp_web/controllers/git_controller.ex index 5485bd0..c9b4060 100644 --- a/lp/lib/lp_web/controllers/git_controller.ex +++ b/lp/lib/lp_web/controllers/git_controller.ex @@ -12,12 +12,40 @@ defmodule LpWeb.GitController do end def oauth(conn, %{"code" => code}) do #some persistance side effect - # persist(code) - render(conn, "oauth2.html", code: code) + # persist(code) access_token = Github.Oauth2.Client.access_token!( + config: [client_id: @client_id, client_secret: @client_secret], + params: [code: code] + ) + + github_client = %Github.Client{access_token: access_token} + + %{"login" => login} = github_client |> Github.Users.find!() |> Map.fetch!(:body) + [%{"email" => email} | _] = github_client |> Github.Users.Emails.list!() |> Map.fetch!(:body) + render(conn, "oauth2.html", [login: login, email: email]) # redirect(conn, "git.html") # html(conn,"") + + end + end + + # ___ example from github + # def github_callback(conn, %{"code" => code}) do + # access_token = Github.Oauth2.Client.access_token!( + # config: [client_id: @client_id, client_secret: @client_secret], + # params: [code: code] + # ) + + # github_client = %Github.Client{access_token: access_token} + + # %{"login" => login} = github_client |> Github.Users.find!() |> Map.fetch!(:body) + # [%{"email" => email} | _] = github_client |> Github.Users.Emails.list!() |> Map.fetch!(:body) + # ... + # end + + # ___ + def github(conn, _params) do authorize_url = Github.Oauth2.Client.authorize_url!( # config: [client_id: Application.fetch_env!(:lp, :client_id), client_secret: Application.fetch_env!(:lp, :client_secret)], diff --git a/lp/lib/lp_web/templates/git/oauth2.html.eex b/lp/lib/lp_web/templates/git/oauth2.html.eex index 411d54c..4ce9670 100644 --- a/lp/lib/lp_web/templates/git/oauth2.html.eex +++ b/lp/lib/lp_web/templates/git/oauth2.html.eex @@ -1,3 +1,4 @@

Autorisation succeded

-Your key is: <%= @code %>! -todo. keep context +

Welcome, <%= @login %> !

+

Is it your mail <%= @email %>?

+

todo. keep context