So entfernen Sie E-Mails mithilfe der Azure-Authentifizierung und PHP-Codierung
<p>Wir haben eine in PHP geschriebene Anwendung, um Posteingangs-E-Mails von der E-Mail-ID abzurufen, die einwandfrei funktioniert. Dies ist eine einfache Authentifizierungsanwendung. Vor Kurzem haben sie die Standardauthentifizierung eingestellt, daher haben wir ein Konto bei Azure erstellt, um eine neue Authentifizierung zu erhalten, und auf dieser Grundlage möchten wir E-Mails löschen. </p>
<p>Wir haben einen Code erstellt, der die Anwendungs-ID und die Geheim-ID verwendet.
Wenn wir die Seite öffnen, wird sie zur Anmeldeseite weitergeleitet, und das ist das Problem.
Wir benötigen es, um uns automatisch anzumelden und E-Mails abzurufen.
Da es sich hierbei um einen Cron-Prozess handelt, ist es keine Lösung, jedes Mal die E-Mail abzurufen, wenn wir einen Login eingeben müssen. </p>
<p>https://xxxx.co/projects/test.php?action=login
Wenn wir diesen Link öffnen, werden wir zur Anmeldung aufgefordert. Das möchten wir nicht, da wir bereits alle Daten wie Anwendungs-ID, Geheim-ID und Mandanten-ID hinterlegt haben. </p>
<p>Wenn wir bereits bei Microsoft angemeldet sind, wird nicht nach einer Anmeldung gefragt, sondern die Seite wird per E-Mail aufgerufen. Wenn wir es jedoch im Inkognito-Modus öffnen, werden wir zur Anmeldung aufgefordert.我们如何删除它并直接获取电子邮件</p>
<pre class="brush:php;toolbar:false;"><?php
$appid = "xxxxx";
$tennantid = "xxxxx";
$secret = "xxxxxx";
$login_url ="https://login.microsoftonline.com/".$tennantid."/oauth2/v2.0/authorize";
session_start ();
$_SESSION['state']=session_id();
echo "<h1>MS OAuth2.0 Demo </h1><br>";
if (isset ($_SESSION['msatg'])){
echo "<h2>Authentifiziert ".$_SESSION["uname"]." </h2><br> ";
echo '<p><a href="?action=logout">Abmelden</a></p>';
} //Ende der Sitzung
else echo '<h2><p>Sie können <a href="?action=login">Anmelden</a> mit Microsoft</p></h2>';
if ($_GET['action'] == 'login'){
$params = array ('client_id' =>$appid,
'redirect_uri' =>'https://xxx.co/projects/test.php',
'response_type' =>'token',
'scope' =>'https://graph.microsoft.com/User.Read',
'state' =>$_SESSION['state']);
header ('Standort: '.$login_url.'?'.http_build_query ($params));
}
Echo '
<script> url = window.location.href;
i=url.indexOf("#");
if(i>0) {
url=url.replace("#","?");
window.location.href=url;}
</script>
';
if (array_key_exists ('access_token', $_GET))
{
$_SESSION['t'] = $_GET['access_token'];
$t = $_SESSION['t'];
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_HTTPHEADER, array ('Authorization: Bearer '.$t,
'Inhaltstyp: application/json'));
curl_setopt ($ch, CURLOPT_URL, "https://graph.microsoft.com/v1.0/me/");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$rez = json_decode (curl_exec ($ch), 1);
if (array_key_exists ('error', $rez)){
var_dump ($rez['error']);
sterben();
}
anders {
$_SESSION['msatg'] = 1; //auth und verifiziert
$_SESSION['uname'] = $rez["displayName"];
$_SESSION['id'] = $rez["id"];
}
curl_close ($ch);
Header („Standort: https://xxxx.co/projects/test.php“);
}
if ($_GET['action'] == 'logout'){
unset ($_SESSION['msatg']);
Header („Standort: https://xxxx.co/projects/test.php“);
}</pre>
<p>当我们打开此代码时,它会要求登录。我们不希望这样。它将使用 php ;