2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

98_GoogleAuth.pm: cache credentials for allowed device in gAuth()

git-svn-id: https://svn.fhem.de/fhem/trunk@23623 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
betateilchen 2021-01-27 14:24:22 +00:00
parent 794c94d666
commit 31e3e5f2f2

View File

@ -213,7 +213,6 @@ sub Detail {
return $ret;
}
# helper functions
sub _ga_make_url {
my ($name) = @_;
@ -239,9 +238,23 @@ sub _ga_make_token_6 {
package main;
sub gAuth {
my($name,$token) = @_;
my($name,$token,$aDev) = @_;
return "missing name!" unless $name;
return "missing $token!" unless $token;
$aDev //= '';
my $myHash = $defs{$name};
return FHEM::GoogleAuth::Get($myHash,$name,'check',$token);
if (exists $myHash->{helper}{$token}
&& $myHash->{helper}{$token} - gettimeofday() > 0
&& defined($aDev)
&& exists $defs{$aDev}
&& $defs{$aDev}{TYPE} eq 'allowed') {
return 1;
} else {
delete $myHash->{helper}{$token} if defined($myHash->{helper}{$token});
my $result = FHEM::GoogleAuth::Get($myHash,$name,'check',$token);
if ($result == 1) {$myHash->{helper}{$token} = gettimeofday()+DAYSECONDS};
return $result;
}
}
1;