Get Authorization URL¶
Description¶
This API is used to obtain a URL for the login providers authorization (login) form. The API is used in the OAuth login approach without using login provider's SDK (see Step 1 in Login Without Provider's SDK).
Method¶
Future<String?> getAuthorizationUrlLink(
String authProviderCode, {
Map<String, String>? fieldsMappings,
List<String>? scope,
})
where:
Argument | Description |
---|---|
authProviderCode |
Name of the login provider as displayed in Backendless Console - see the specific provider screen at Users > Login Providers. String value. |
fieldsMappings |
Optional parameter. A mapping of user properties between OAuth provider and Backendless. If the map object is not null , it should contain a mapping between the provider specific property names and the column names in the Users table. Consider the following mappings:"my_email" >> "email" "my_name" >> "name" The key identifies the provider's property name and the value is the name of the mapped property (column name) in Backendless. In the example above, "my_email" and "my_name" are the properties returned by the OAuth2 provider and the corresponding values will be respectively stored in the "email" and "name" columns in Backendless. Must be an object. |
scope |
Optional parameter. A collection of security scopes the client application is requesting the permissions for. String value. |
Return Value¶
The method returns an authorization URL. It should be used to open up the provider's login form.
The object in the response has the following structure:
{
"url": "authorization URL"
}
Example¶
The example below retrieves the authorization URL for "facebook".
providerCode == "facebook"
String? result = await Backendless.userService.getAuthorizationUrlLink(
providerCode,
fieldsMappings: fieldsMappings,
scope: scope,
);
await showDialog(
useSafeArea: true,
context: context,
builder: (context) {
return Container(
width: MediaQuery.of(context).size.width * 1.2,
height: MediaQuery.of(context).size.height,
child: Column(
children: [
Expanded(
child: InAppWebView(
initialUrlRequest: URLRequest(
url: Uri.parse(result!),
),
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
useShouldOverrideUrlLoading: true,
disableHorizontalScroll: true,
cacheEnabled: true,
userAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Mobile/15E148 Safari/604.1'
//providerCode != "facebook" ? 'random' : '',
),
android: AndroidInAppWebViewOptions(
useHybridComposition: true,
safeBrowsingEnabled: false,
),
),
),
),
],
),
);
});