Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

xamarin.forms authorization without 3rd party libraries

I'm trying to make authorization in xamarin forms and i dont know how to structure it. I'm using MVVM and for my authorization i wanna use JWT . I want to check if the token is valid then go to certain page . when i put the validation code inside the onappearing method the page is still visible for a very small amount of time and when i put it inside the constructor of the page the navigation doesn't work. How should this authorization should be done?(should i make another transition page with something like an activity indicator ?)

this is the code i use for the token validation

public async Task CheckIfUserIsLoggedIn()
        {
            if (!await ValidateToken())
            {
                await _dependencyService.Get<INavigationService>().PushAsync(ViewNames.LOGINVIEW);
            }
        }
question from:https://stackoverflow.com/questions/65904845/xamarin-forms-authorization-without-3rd-party-libraries

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

when i put it inside the constructor of the page the navigation doesn't work.

You can call the push service like this in Main thread:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        BindingContext = new myViewModel();

        CheckIfUserIsLoggedIn();
    }

    public async void  CheckIfUserIsLoggedIn()
    {
        if (!await ValidateToken())
        {
            Device.BeginInvokeOnMainThread(async () => {
                await _dependencyService.Get<INavigationService>().PushAsync(ViewNames.LOGINVIEW);
            });
        }
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...