
Verziók
Mielőtt elkezdenénk, ellenőrizze, hogy a következő verziók vannak-e telepítve:
„Reagál”: „16.8.3”,
„Reagál-natív”: „0.59.1”,
„Reagál-bennszülött-kapcsolatok”: „3.1.5”,
Itt van a link a Github repóhoz, ha meg akarja nézni : //github.com/FormidableLabs/react-native-app-auth
A React-native-app-auth hitelesítésre szolgál a reakció-natív alkalmazásokban. Esetemben a Google-lal próbáltam használni, ezért íme egy magyarázat, hogyan telepítheti és használhatja a fenti verziókhoz.
Dokumentációjukban ez az AppAuth-iOS és az AppAuth-Android SDKS React Native hídjaként is ismertetésre kerül az OAuth 2.0 és az OpenID Connect szolgáltatókkal való kommunikációhoz.
Tesztelt OpenID szolgáltatók:
Ezek a szolgáltatók OpenID kompatibilisek, ami azt jelenti, hogy használhatja az automatikus felderítést:
- Identity Server4 (példa konfigurációra)
- Identity Server3 (Konfigurációs példa)
- Google (példa konfigurációra)
- Okta (példa konfigurációra)
- Kulcstartó (példa konfigurációra)
- Azure Active Directory (konfigurációs példa)
- AWS Cognito (konfigurációs példa)
Tesztelt OAuth2 szolgáltatók:
Ezek a szolgáltatók implementálják az OAuth2 specifikációt, de nem OpenID szolgáltatók, ami azt jelenti, hogy magának kell konfigurálnia az engedélyezést és a token végpontokat.
- Uber (Konfigurációs példa)
- Fitbit (konfigurációs példa)
- Dropbox (példa konfigurációra)
- Reddit (példa konfigurációra)
Telepítés
npm install react-native-app-auth --savereact-native link react-native-app-auth
IOS
A dokumentációban három módja van ennek az állapotnak a megvalósítására, de én inkább a CocoaPod-okat részesítem előnyben.
Ha először használja a CocoaPodokat, kérjük, hajtsa végre az alábbi lépéseket:
sudo gem install cocoapods
Nyissa meg a gyökérmappát
cd ios
pod init
A pod init parancs inicializálja a Podfile-t az iOS könyvtárban.
Ezután adja hozzá ezt a sort alább a Podfile-be, miután a 'your_app' csinálás megtörtént
pod 'AppAuth', '0.95.0'
Regisztrálja az átirányítási URL-sémát
Ha támogatni kívánja az iOS 10 vagy újabb rendszert, akkor a következőképpen kell meghatároznia a támogatott átirányítási URL sémákat Info.plist
:
Megjegyzés: Ezeket az értékeket az oauth szolgáltatótól kapja meg .
A Google számára: //console.developers.google.com/
CFBundleURLTypes CFBundleURLName com.your.app.identifier CFBundleURLSchemes io.identityserver.demo
CFBundleURLName
bármely globálisan egyedi karakterlánc. Általános gyakorlat az alkalmazásazonosító használata.CFBundleURLSchemes
egy olyan URL-séma tömb, amelyet az alkalmazásnak kezelnie kell. A séma az OAuth átirányítási URL kezdete, a séma elválasztó (:
) karakterig.
Definiálja az openURL visszahívást az AppDelegate alkalmazásban
Meg kell őriznie a hitelesítési munkamenetet az átirányításból származó engedélyezési folyamat folytatásához. Kovesd ezeket a lepeseket:
Tedd AppDelegate
felelnie RNAppAuthAuthorizationFlowManager
az alábbi módosításokat AppDelegate.h
:
+ #import "RNAppAuthAuthorizationFlowManager.h"
- @interface AppDelegate : UIResponder + @interface AppDelegate : UIResponder
+ @property(nonatomic, weak)idauthorizationFlowManagerDelegate;
Változás az alábbi módszert UIApplicationDelegate
a AppDelegate.m
:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { return [self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:url];}
Android
A sikeres összekapcsolás után adja hozzá az android / app / build.grandle file defaultConfig értéket, mint az azonosítók átirányítják az URL-t.
manifestPlaceholders = [
appAuthRedirectScheme: “io.identityserver.demo”
]
Használat
import { authorize } from 'react-native-app-auth';
// base configconst config = { issuer: '', clientId: '', redirectUrl: '', scopes: [''],};
// use the client to make the auth request and receive the authStatetry { const result = await authorize(config); // result includes accessToken, accessTokenExpirationDate and refreshToken} catch (error) { console.log(error);}
Boldog kódolás!
Köszönöm, hogy idáig elolvastad. Ha tetszett ez a bejegyzés, kérjük, ossza meg, kommentálja és nyomja meg? néhányszor (legfeljebb 50-szer). . . Talán segít valakinek.
Kövessen engem a Mediumon vagy a Githubon, ha a jövőben ilyen részletesebb és informatívabb írásokra kíváncsi. ?