Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:
Külső bérlők (további információ)
Ez az oktatóanyag bemutatja, hogyan regisztrálhat egy felhasználót e-mailben egyszeri pin-kód vagy felhasználónév (e-mail) és jelszó használatával, és hogyan gyűjthet felhasználói attribútumokat az Android-mobilalkalmazásban natív hitelesítéssel.
Ebben az oktatóanyagban ön:
- Regisztráljon egy felhasználót e-mailben egyszeri pin-kód vagy felhasználónév (e-mail) és jelszó használatával.
- Felhasználói attribútumok gyűjtése a regisztráció során.
- Regisztrációs hibák kezelése.
Előfeltételek
- Hajtsa végre az oktatóanyag lépéseit: Android-alkalmazás előkészítése natív hitelesítésre cikk.
- Ha felhasználói attribútumokat szeretne gyűjteni a regisztráció során, konfigurálja a felhasználói attribútumokat, amikor hozza létre a regisztrációs és bejelentkezési felhasználói folyamatot.
Felhasználó regisztrálása
Ha egyszeri pin-kód vagy felhasználónév (e-mail) és jelszó használatával szeretne regisztrálni egy felhasználót, gyűjtsön egy e-mailt a felhasználótól, majd küldjön egy egyszeri jelszót tartalmazó e-mailt a felhasználónak. A felhasználó egy érvényes, egyszeri pin-kóddal rendelkező e-mail-címet ad meg a felhasználónév ellenőrzéséhez.
Felhasználó regisztrációjához a következőkre van szükség:
Felhasználói felület (UI) létrehozása a következőhöz:
- Felhasználótól e-mail cím gyűjtése. Adjon hozzá érvényesítést a bemenetekhez, hogy a felhasználó érvényes e-mail-címet adjon meg.
- Ha felhasználónévvel (e-mailben) és jelszóval regisztrál, gyűjtsön jelszót.
- Gyűjtsön be egy e-mail egyszeri pin-kódot a felhasználótól.
- Szükség esetén gyűjtse össze a felhasználói attribútumokat.
- Egyszeri pin-kód újraküldése (ajánlott).
- Indítsa el a regisztrációs folyamatot.
Az alkalmazásban adjon hozzá egy gombot, amelynek kiválasztásakor az esemény a következő kódrészletet aktiválja:
CoroutineScope(Dispatchers.Main).launch { val parameters = NativeAuthSignUpParameters(username = email) // Assign 'password' param if you sign in with username (email) and password // parameters.password = password val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpResult.CodeRequired) { val nextState = actionResult.nextState val submitCodeActionResult = nextState.submitCode( code = code ) if (submitCodeActionResult is SignUpResult.Complete) { // Handle sign up success } } }- Az SDK
signUp(parameters)példánymetódusának használatával indítsa el a regisztrációs folyamatot. - Ha felhasználónévvel (e-mail-címmel) és jelszóval szeretne regisztrálni, hozzon létre egy példányt
NativeAuthSignUpParametersosztályhoz, és rendelje hozzá a felhasználónevet és a jelszót. - A regisztrációs paraméter (
username) a felhasználótól gyűjtött e-mail-cím. - A leggyakoribb forgatókönyvben a
signUp(parameters)egy eredményt ad vissza,SignUpResult.CodeRequired, amely azt jelzi, hogy az SDK elvárja, hogy az alkalmazás az e-mail-címre küldött egyszer használatos jelszót benyújtsa. - A
SignUpResult.CodeRequiredobjektum egy új állapothivatkozást tartalmaz, amelyetactionResult.nextStatekeresztül tudunk lekérni. - Az új állapot két új módszerhez biztosít hozzáférést:
-
submitCode()küldi el az alkalmazás által a felhasználótól gyűjtött egyszeri pin-kódot. -
resendCode()újraküldi az email-ben küldött egyszeri kódot, ha a felhasználó nem kapja meg a kódot.
-
- A
submitCode()SignUpResult.Completead vissza, amely azt jelzi, hogy a folyamat befejeződött, és a felhasználó regisztrálva lett. - A
signUp(parameters)SignUpErroris visszaadhat, amely azt jelzi, hogy hiba történt.
- Az SDK
Felhasználói attribútumok gyűjtése a regisztráció során
Függetlenül attól, hogy egyszeri jelszóval vagy felhasználónévvel (e-mail) és jelszóval regisztrál egy felhasználót, a felhasználói attribútumokat a felhasználói fiók létrehozása előtt gyűjtheti össze:
A
NativeAuthSignUpParameters-példány egyattributesparamétert fogad el:CoroutineScope(Dispatchers.Main).launch { val parameters = NativeAuthSignUpParameters(username = email) // Assign 'password' param if you sign in with username (email) and password // parameters.password = password parameters.attributes = userAttributes val actionResult: SignUpResult = authClient.signUp(parameters) //... }Az Android SDK egy olyan segédprogramosztályt biztosít
UserAttribute.Builder, amellyel felhasználói attribútumokat hozhat létre. Ha például városi és ország felhasználói attribútumokat szeretne küldeni, használja az alábbi kódrészletet auserAttributesváltozó létrehozásához:val userAttributes = UserAttributes.Builder () .country(country) .city(city) .build()A
UserAttribute.Builderosztály metódusnevei megegyeznek az általuk buildelt felhasználói attribútumok programozható neveivel. Tudjon meg többet az Android SDK attribútumkészítő-ről.A
signUp(parameters)metódusSignUpResult.AttributesRequiredadhat vissza annak jelzésére, hogy az alkalmazásnak egy vagy több szükséges attribútumot kell elküldenie, mielőtt a Microsoft Entra létrehoz egy fiókot. Ezeket az attribútumokat a rendszergazda kötelezőként konfigurálja a Microsoft Entra felügyeleti központban. A Microsoft Entra nem kér kifejezetten opcionális felhasználói attribútumokat.A
SignUpResult.AttributesRequirederedmény egyrequiredAttributesparamétert tartalmaz.requiredAttributesRequiredUserAttributeobjektumok listája, amelyek az alkalmazás által beküldendő felhasználói attribútumokkal kapcsolatos részleteket tartalmazzák. AactionResult is SignUpResult.AttributesRequiredkezeléséhez használja a következő kódrészletet:val parameters = NativeAuthSignUpParameters(username = email) // Assign 'password' param if you sign in with username (email) and password // parameters.password = password parameters.attributes = userAttributes val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpResult.AttributesRequired) { val requiredAttributes = actionResult.requiredAttributes // Handle "attributes required" result val nextState = actionResult.nextState nextState.submitAttributes( attributes = moreAttributes ) }
Regisztrációs hibák kezelése
A regisztráció során nem minden művelet sikeres. Előfordulhat például, hogy a felhasználó megpróbál regisztrálni egy már használt e-mail-címmel, vagy egy érvénytelen e-mail-címet küld egy egyszeri pin-kóddal.
A regisztráció kezdeti hibájának kezelése
A signUp() metódus hibáinak kezeléséhez használja a következő kódrészletet:
val parameters = NativeAuthSignUpParameters(username = email)
// Assign 'password' param if you sign in with username (email) and password
// parameters.password = password
val actionResult: SignUpResult = authClient.signUp(parameters)
if (actionResult is SignUpResult.CodeRequired) {
// Next step: submit code
} else if (actionResult is SignUpError) {
when {
actionResult.isUserAlreadyExists() -> {
// Handle "user already exists" error
}
else -> {
// Handle other errors
}
}
}
signUp(parameters)visszaadhatjaSignUpError.SignUpErrorasignUp()által visszaadott sikertelen művelet eredményét jelzi, és nem tartalmaz hivatkozást az új állapotra.Ha
actionResult is SignUpError, az MSAL Android SDK olyan segédprogramokat biztosít, amelyekkel tovább elemezheti az adott hibákat:- A metódus
isUserAlreadyExists()ellenőrzi, hogy a felhasználónév már használatban van-e egy fiók létrehozásához. -
isInvalidAttributes()ellenőrzi, hogy az alkalmazás által küldött egy vagy több attribútum ellenőrzése sikertelen volt-e, például helytelen adattípus. Tartalmaz egyinvalidAttributesparamétert, amely az alkalmazások által elküldött összes attribútum listája, de sikertelen volt az érvényesítés. -
isInvalidPassword()ellenőrizze, hogy a jelszó érvénytelen-e, például ha a jelszó nem felel meg az összes jelszó-összetettségi követelménynek. További információ a Microsoft Entra jelszószabályzatairól -
isInvalidUsername()ellenőrizze, hogy a felhasználónév érvénytelen-e, például ha a felhasználói e-mail érvénytelen. -
isBrowserRequired()ellenőrzi, hogy szükség van-e böngészőre (webes tartalék) a hitelesítési folyamat befejezéséhez. Ez a forgatókönyv akkor fordul elő, ha a natív hitelesítés nem elegendő a hitelesítési folyamat befejezéséhez. A rendszergazda például hitelesítési módszerként konfigurálja az e-maileket és a jelszót, de az alkalmazás nem küld jelszót feladattípusként, vagy egyszerűen nem támogatja azt. Az Android-alkalmazásokban kövesse a webes tartalék támogatás lépéseit a-ben, hogy kezelje a forgatókönyvet, amikor az megtörténik. -
isAuthNotSupported()ellenőrzi, hogy az alkalmazás küld-e olyan kihívástípust, amelyet a Microsoft Entra nem támogat, tehát valamilyen kihívástípust, amely nem oob vagy jelszó. További információ kihívástípusokról.
Értesítse a felhasználót arról, hogy az e-mail már használatban van, vagy egyes attribútumok érvénytelenek az alkalmazás felhasználói felületén található rövid üzenettel.
- A metódus
Az érvénytelen attribútumok hibájának kezeléséhez használja a következő kódrészletet:
val parameters = NativeAuthSignUpParameters(username = email) // Assign 'password' param if you sign in with username (email) and password // parameters.password = password parameters.attributes = userAttributes val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpError && actionResult.isInvalidAttributes()) { val invalidAttributes = actionResult.invalidAttributes // Handle "invalid attributes" error, this time submit valid attributes val parameters = NativeAuthSignUpParameters(username = email) // Assign 'password' param if you sign in with username (email) and password // parameters.password = password parameters.attributes = userAttributes authClient.signUp(parameters) } //...
Az egyszeri jelszóval kapcsolatos e-mail küldési hiba kezelése
A submitCode() metódus hibáinak kezeléséhez használja a következő kódrészletet:
val submitCodeActionResult = nextState.submitCode(
code = code
)
if (submitCodeActionResult is SignUpResult.Complete) {
// Sign up flow complete, handle success state.
} else if (submitCodeActionResult is SubmitCodeError) {
// Handle errors under SubmitCodeError
when {
submitCodeActionResult.isInvalidCode() -> {
// Handle "code invalid" error
}
else -> {
// Handle other errors
}
}
}
submitCode()visszaadhatjaSubmitCodeError.A
isInvalidCode()metódus használatával ellenőrizze az adott hibát, például a beküldött kód érvénytelen. Ebben az esetben az előző állapothivatkozást kell használni a művelet újbóli végrehajtásához.Új e-mail egyszeri pin-kód lekéréséhez használja a következő kódrészletet:
val submitCodeActionResult = nextState.submitCode( code = code ) if (submitCodeActionResult is SubmitCodeError && submitCodeActionResult.isInvalidCode()) { // Inform the user that the submitted code was incorrect or invalid and ask for a new code to be supplied val newCode = retrieveNewCode() nextState.submitCode( code = newCode ) }
Győződjön meg arról, hogy tartalmazza az importálási utasításokat. Az Android Studiónak automatikusan tartalmaznia kell az importálási utasításokat.
Elvégezte az összes szükséges lépést, hogy sikeresen regisztráljon egy felhasználót az alkalmazásba. Kompilálja és futtassa az alkalmazást. Ha minden rendben van, képesnek kell lennie arra, hogy sikeresen regisztrálja a felhasználót e-mailben egyszeri pin-kód vagy e-mail és jelszó használatával.
Nem kötelező: Bejelentkezés egy regisztrációs folyamat után
Egy sikeres regisztrációs folyamat után a felhasználót anélkül is bejelentkeztetheti, hogy új bejelentkezési folyamatot indítana. További információért olvasd el a oktatóanyagot: Felhasználói bejelentkezés regisztráció után az Android cikkben.