Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> imap_open a OAuth2
ufo1990
post 28.10.2022, 19:44:03
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 26.07.2019

Ostrzeżenie: (0%)
-----


Microsoft wyłączył uwierzytelnienie za pomocą hasła więc automatycznie jest problem z imap_open ponieważ nie obsługuje on autentykacji za pomocą tokena. Mam poniższy skrypt za pomocą, którego jestem wstanie wyciągnąć token po zalogowaniu i to działa, natomiast utknąłem i nie mam pomysłu w jaki sposób wykorzystać ten token aby połączyć się ze skrzynką za pomocą imapa i wyciągać e-maile. Czy ktoś coś podpowie ?

  1. <?php
  2. $id_application = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  3. $secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  4. $login_url ="https://login.microsoftonline.com/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/oauth2/v2.0/authorize";
  5.  
  6.  
  7. $_SESSION['state']= session_id();
  8.  
  9. if(isset($_SESSION['message']))
  10. {
  11. echo '<a href="?action=logout">Log Out</a>';
  12. }
  13. else
  14. {
  15. echo '<a href="?action=login">Log In</a>';
  16. }
  17.  
  18. if($_GET['action'] == 'login')
  19. {
  20. $parametrs = array ('client_id' => $id_application,
  21.  
  22. 'redirect_uri' =>'https://xxxxxxxxxxxxxxxxxxx',
  23.  
  24. 'response_type' =>'token',
  25.  
  26. 'scope' =>'https://graph.microsoft.com/User.Read',
  27.  
  28. 'state' => $_SESSION['state']);
  29.  
  30. header('Location: '.$login_url.'?'.http_build_query($parametrs));
  31.  
  32. }
  33.  
  34. if(array_key_exists('access_token', $_GET))
  35. {
  36. $curl = curl_init ();
  37.  
  38. curl_setopt ($curl, CURLOPT_HTTPHEADER, array ('Authorization: Bearer '.$_GET['access_token'],'Conent-type: application/json'));
  39.  
  40. curl_setopt ($curl, CURLOPT_URL, "https://graph.microsoft.com/v1.0/me/");
  41.  
  42. curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
  43.  
  44. $decode = json_decode (curl_exec ($curl), 1);
  45.  
  46. if(!array_key_exists ('error', $decode))
  47. {
  48. $_SESSION['message'] = 1;
  49. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 11:28