From 0f992ce41757dc3cf7fc574c45ec77184fc23fb2 Mon Sep 17 00:00:00 2001 From: Bogdan Covrig Date: Thu, 3 Oct 2019 00:30:52 +0200 Subject: [PATCH 1/5] Add Slack logo icon --- public/images/oauth/slack.png | Bin 0 -> 20144 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/oauth/slack.png diff --git a/public/images/oauth/slack.png b/public/images/oauth/slack.png new file mode 100644 index 0000000000000000000000000000000000000000..13f9ae1ffd1d9d954ab9c15637fb6176ca708de6 GIT binary patch literal 20144 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 a2^1V=87Td1GP?DzqBM?aA+wdw`Tai|ojeZ! literal 0 HcmV?d00001 From 5997df1417381d2952e005d5c5d4571cc3db90f8 Mon Sep 17 00:00:00 2001 From: Bogdan Covrig Date: Thu, 3 Oct 2019 00:34:53 +0200 Subject: [PATCH 2/5] Updated Slack logo icon transparancy --- public/images/oauth/slack.png | Bin 20144 -> 22351 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/oauth/slack.png b/public/images/oauth/slack.png index 13f9ae1ffd1d9d954ab9c15637fb6176ca708de6..9de2cbc5b3a4be8b5dc01d97b35bd3d0b1935093 100644 GIT binary patch delta 6576 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 delta 4351 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 Date: Thu, 3 Oct 2019 01:43:54 +0200 Subject: [PATCH 3/5] Add Slack provider --- app/config/providers.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/config/providers.php b/app/config/providers.php index 01b7b6b429..7b7402f71a 100644 --- a/app/config/providers.php +++ b/app/config/providers.php @@ -46,4 +46,9 @@ return [ 'icon' => 'icon-linkedin', 'enabled' => true, ], + 'slack' => [ + 'developers' => 'https://api.slack.com/', + 'icon' => 'icon-slack', + 'enabled' => true, + ], ]; From 2d1ff748f23b07449336dd04f7f60c86ba6d5b45 Mon Sep 17 00:00:00 2001 From: Bogdan Covrig Date: Thu, 3 Oct 2019 01:45:06 +0200 Subject: [PATCH 4/5] [WIP] Add Slack accestoken and code functions --- src/Auth/OAuth/Slack.php | 125 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 src/Auth/OAuth/Slack.php diff --git a/src/Auth/OAuth/Slack.php b/src/Auth/OAuth/Slack.php new file mode 100644 index 0000000000..a50f82e33a --- /dev/null +++ b/src/Auth/OAuth/Slack.php @@ -0,0 +1,125 @@ +appID). + '&scope='.urlencode("identity.avatar,identity.basic,identity.email,identity.team"). + '&redirect_uri='.urlencode($this->callback); + } + + /** + * @param string $code + * + * @return string + */ + public function getAccessToken(string $code):string + { + $accessToken = $this->request( + 'GET', + 'https://slack.com/api/oauth.access'. + '?client_id='.urlencode($this->appID). + '&client_secret='.urlencode($this->appSecret). + '&redirect_uri='.urlencode($this->callback). + '&code='.urlencode($code) + ); + + $accessToken = json_decode($accessToken, true); // + + if (isset($accessToken['access_token'])) { + return $accessToken['access_token']; + } + + return ''; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserID(string $accessToken):string + { + $user = $this->getUser($accessToken); + + if (isset($user['user']['id'])) { + return $user['user']['id']; + } + + return ''; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserEmail(string $accessToken):string + { + $user = $this->getUser($accessToken); + + if (isset($user['user']['email'])) { + return $user['user']['email']; + } + + return ''; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserName(string $accessToken):string + { + $user = $this->getUser($accessToken); + + if (isset($user['user']['name'])) { + return $user['user']['name']; + } + + return ''; + } + + /** + * @param string $accessToken + * + * @return array + */ + protected function getUser(string $accessToken):array + { + if (empty($this->user)) { + $user = $this->request( + 'GET', + 'https://slack.com/api/users.identity&token='.urlencode($accessToken)); + + $this->user = json_decode($user, true); + } + + return $this->user; + } +} + +//http://localhost:8080/v1/auth/oauth/slack?project=5d94eda5e2b8a&success=http://localhost:8080/?success=1&failure=http://localhost:8080/auth/signin?failure=2 From b1f01e9dbfa216a3606439c346bfdd908ccacf2a Mon Sep 17 00:00:00 2001 From: Bogdan Covrig Date: Thu, 3 Oct 2019 18:19:39 +0200 Subject: [PATCH 5/5] Add Slack provider. Fix getUser request path --- src/Auth/OAuth/Slack.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Auth/OAuth/Slack.php b/src/Auth/OAuth/Slack.php index a50f82e33a..120dd4233d 100644 --- a/src/Auth/OAuth/Slack.php +++ b/src/Auth/OAuth/Slack.php @@ -24,10 +24,12 @@ class Slack extends OAuth */ public function getLoginURL():string { + // https://api.slack.com/docs/oauth#step_1_-_sending_users_to_authorize_and_or_install return 'https://slack.com/oauth/authorize'. '?client_id='.urlencode($this->appID). - '&scope='.urlencode("identity.avatar,identity.basic,identity.email,identity.team"). - '&redirect_uri='.urlencode($this->callback); + '&scope=identity.avatar+identity.basic+identity.email+identity.team'. + '&redirect_uri='.urlencode($this->callback). + '&state='.urlencode(json_encode($this->state)); } /** @@ -37,13 +39,14 @@ class Slack extends OAuth */ public function getAccessToken(string $code):string { + // https://api.slack.com/docs/oauth#step_3_-_exchanging_a_verification_code_for_an_access_token $accessToken = $this->request( 'GET', 'https://slack.com/api/oauth.access'. '?client_id='.urlencode($this->appID). '&client_secret='.urlencode($this->appSecret). - '&redirect_uri='.urlencode($this->callback). - '&code='.urlencode($code) + '&code='.urlencode($code). + '&redirect_uri='.urlencode($this->callback) ); $accessToken = json_decode($accessToken, true); // @@ -110,10 +113,13 @@ class Slack extends OAuth */ protected function getUser(string $accessToken):array { + if (empty($this->user)) { + // https://api.slack.com/methods/users.identity $user = $this->request( 'GET', - 'https://slack.com/api/users.identity&token='.urlencode($accessToken)); + 'https://slack.com/api/users.identity?token='.urlencode($accessToken), + ); $this->user = json_decode($user, true); } @@ -121,5 +127,3 @@ class Slack extends OAuth return $this->user; } } - -//http://localhost:8080/v1/auth/oauth/slack?project=5d94eda5e2b8a&success=http://localhost:8080/?success=1&failure=http://localhost:8080/auth/signin?failure=2