Reagieren Sie auf Native Expo AuthSession mit Azure, die unter Android nicht funktioniertAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Reagieren Sie auf Native Expo AuthSession mit Azure, die unter Android nicht funktioniert

Post by Guest »

Ich versuche, die Azure-Authentifizierung mithilfe von Expo AuthSession auf React Native Expo gemäß der Dokumentation https://docs.expo.dev/guides/authentication/#azure zu implementieren.
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}

);
}
Ich habe versucht, dies mit der Funktion WebBrowser.openAuthSessionAsync() von expo-web-browser zu implementieren, aber am Ende trat das gleiche Problem auf.
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

 
















Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post