2017-04-21 14:56:24 +00:00
|
|
|
#!/usr/bin/perl -w
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use HTML::Template;
|
|
|
|
use Tweetodon::Website;
|
|
|
|
use Tweetodon::App;
|
|
|
|
use Tweetodon::Token;
|
2017-04-21 19:45:58 +00:00
|
|
|
use Tweetodon::User;
|
2017-04-21 14:56:24 +00:00
|
|
|
|
|
|
|
package Tweetodon::Website::OAuthLogin;
|
|
|
|
@Tweetodon::Website::OAuthLogin::ISA = qw(Tweetodon::Website);
|
|
|
|
use Data::Dumper;
|
|
|
|
use JSON;
|
|
|
|
|
|
|
|
sub requires_authentication {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
sub fill_content {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
sub prerender {
|
|
|
|
my $self = shift;
|
2017-04-21 19:45:58 +00:00
|
|
|
my $instance = $main::FORM{inputInstance};
|
|
|
|
$instance = $main::FORM{instance} unless defined($instance);
|
|
|
|
|
2017-04-21 14:56:24 +00:00
|
|
|
$self->{"template"} = "OAuthLogin";
|
|
|
|
$self->{"content_type"} = "html";
|
2017-04-21 19:45:58 +00:00
|
|
|
$self->{"set_cookie"} = ("instance=".$instance);
|
2017-04-21 14:56:24 +00:00
|
|
|
$self->{"params"}->{"currentmode"} = "OAuthLogin";
|
|
|
|
|
|
|
|
my $app = Tweetodon::App->get_or_create_by_instance($instance);
|
2017-04-21 19:45:58 +00:00
|
|
|
$self->{params}->{instance_redirect_uri} = $main::config->{app}->{redirect_uris};
|
|
|
|
$self->{params}->{instance_client_id} = $app->{data}->{instance_client_id};
|
|
|
|
$self->{params}->{instance} = $instance;
|
|
|
|
$self->{params}->{token_is_valid} = "false";
|
|
|
|
|
2017-04-22 20:22:55 +00:00
|
|
|
if (defined($main::FORM{session_id})){
|
|
|
|
my $user = Tweetodon::User->authenticate();
|
|
|
|
if ($user){
|
2017-04-21 19:45:58 +00:00
|
|
|
$self->{params}->{token_is_valid} = "true";
|
|
|
|
}
|
|
|
|
# {"error":"The access token is invalid"}
|
2017-04-21 14:56:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|