Dieses Azure Der Authentifizierungsprozess funktionierte unter IOS einwandfrei und generierte daher automatisch ein Zugriffstoken zum Schließen des Browsers, während es unter Android nicht funktionierte. Es wurde weder ein Zugriffstoken generiert noch der Browser geschlossen.
Hier sind die funktionierenden Screenshots der IOS-App.
IOS-Seite vor der Authentifizierung
IOS Azure-Authentifizierungsprozess
IOS Azure-Authentifizierung erfolgreich mit Token
Hier sind nicht funktionierende Screenshots der Android-App.
Android-Seite vor der Authentifizierung
Android Azure-Authentifizierungsprozess
Code Snippet für Azure Expo AuthSession
Code: Select all
import { useState } from 'react';
import * as WebBrowser from 'expo-web-browser';
import {
exchangeCodeAsync,
makeRedirectUri,
useAuthRequest,
useAutoDiscovery,
} from 'expo-auth-session';
import { Button, Text, SafeAreaView, Platform } from 'react-native';
WebBrowser.maybeCompleteAuthSession();
export default function App() {
// Endpoint
const discovery = useAutoDiscovery(
'https://login.microsoftonline.com//v2.0',
);
const redirectUri = makeRedirectUri({
native: Platform.OS === 'ios' ? "msauth.com.myorg.myauthapp://auth" : "msauth://com.myorg.myauthapp/GTEWOFHNVBCDAPDICYVBSQTY%2B",
});
const clientId = '';
// We store the JWT in here
const [token, setToken] = useState(null);
// Request
const [request, , promptAsync] = useAuthRequest(
{
clientId,
scopes: ['openid', 'profile', 'email', 'offline_access'],
redirectUri,
},
discovery,
);
return (
{
promptAsync().then((codeResponse) => {
if (request && codeResponse?.type === 'success' && discovery) {
exchangeCodeAsync(
{
clientId,
code: codeResponse.params.code,
extraParams: request.codeVerifier
? { code_verifier: request.codeVerifier }
: undefined,
redirectUri,
},
discovery,
).then((res) => {
setToken(res.accessToken);
});
}
});
}}
/>
{token}
);
}
Auch i Ich habe versucht, die Datei „android/app/src/AndroidManifest.xml“ gemäß diesem Beitrag zu ändern.
Expo-Authentifizierungssitzung wird beim Empfang von Redirecturi auf Android nicht geschlossen und immer noch kein Erfolg.
Ich habe dies überprüft auf Geräten mit Expo-Entwicklungs-Builds für Android.
Code: Select all