Step 7: Create Platform Specific Login Renderer
We need to create a platform-specific LoginRenderer Page. Thus, you need to create a specific login page (loginRenderer. CS) for iOS, Android, and UWP projects.
We need to add a Login page render that will be used by Xamarin.Auth to display the web view for the OAuth log-in page.
Code Snippet Explanation
The following code is for Xamarin.Forms Dependency service that maps the provider login page to a login renders.
using System;
using Xamarin.Forms;
namespace OAuthLoginAuthentication {
public partial class SecuredLoginPage: ContentPage {
public SecuredLoginPage() {
InitializeComponent();
}
void LoginClick(object sender, EventArgs args) {
Button btncontrol = (Button) sender;
string providername = btncontrol.Text;
if (OAuthConfig.User == null) {
Navigation.PushModalAsync(new ProviderLoginPage(providername));
}
}
}
}
Create an OAuthProviderSetting class from a portable class library by implementing OAuth. That is explained in step 8.
OAuthProviderSetting oauth = new OAuthProviderSetting();
var auth = oauth.LoginWithProvider(providername);
Create Oauth event
for provider login completed and canceled.
auth.Completed += (sender, eventArgs) => {
if (eventArgs.IsAuthenticated) { //Login Success }
else {
// The user canceled
}
};
If you want to retrieve and save user information. You can create a username from a portable library and refer to the code below.
namespace DevEnvExeLogin {
public class UserDetails {
public string TwitterId {
get;
set;
}
public string Name {
get;
set;
}
public string ScreensName {
get;
set;
}
public string Token {
get;
set;
}
public string TokenSecret {
get;
set;
}
public bool IsAuthenticated {
get {
return !string.IsNullOrWhiteSpace(Token);
}
}
}
}