Войти с помощью Google API в WordPress - PullRequest
0 голосов
/ 14 октября 2018

Я кодирую функцию входа в систему с Google API на WordPress (сам по себе не плагины), но у меня есть проблемы.Идеи следующие: 1. Получить токен от Google, чтобы получить информацию (я сделал).2. Сравните адрес электронной почты с учетной записью. Если результат верен, войдите без пароля учетной записи.У меня проблема в шаге 2. Результат возвращает true, но я не понимаю, почему страница перегружена.Я использую отладку, чтобы проверить значение, но ничего плохого. Когда я удаляю функцию "loggIn ()", код запускается.Вот мой код: введите описание изображения здесь

1 Ответ

0 голосов
/ 14 октября 2018

Некоторое время я делал что-то похожее для бэкэнда.

<?php
public function uty_main_page(){
    require_once ('config.php');
    global $wpdb;
    if(isset($_GET['code'])) {
        $client->authenticate($_GET['code']);
        $_SESSION['token'] = $client->getAccessToken();
        $token_decode = json_decode($_SESSION['token']);
        update_option( 'uty_refresh_token' , $token_decode->refresh_token );
        $client->setAccessToken($_SESSION['token']);
        echo 'Authorization Successful';
    }
    ?>
                    <?php if(get_option( 'uty_refresh_token' ) != ''){ ?>
                        <li><a href="#uty_upload">Upload</a></li>
                        <li><a href="#uty_videos">All Videos</a></li>
                    <?php } ?>
                    <li><a href="#uty_settings">Settings</a></li>
                </ul>
            </div>
            <div class="tab_content">
                <?php if( $client->isAccessTokenExpired() ) { ?>
                    <?php if(get_option( 'uty_refresh_token' ) != ''){ ?>
                        <?php
                        $client->refreshToken( get_option( 'uty_refresh_token' ) );
                        $_SESSION['token'] = $client->getAccessToken();
                        $client->setAccessToken($client->getAccessToken());
                        ?>
                        <div id="uty_upload">
                            <?php
                            if(isset($_POST['uty_video_submit'])){
                                if(isset($_FILES['uty_video'])){
                                    $uploaded = media_handle_upload('uty_video', 0);
                                    if(is_wp_error($uploaded)){
                                        $message = $uploaded->get_error_message();
                                    }
                                    else{
                                            //Do Some coding here
                                    }
                                }
                            }
                            ?>
                        </div>
                    <?php } ?>
                <?php } ?>
                <div id="uty_settings">
                    <?php if(isset($_POST['revoke-access-token'])){ ?>
                        <?php update_option( 'uty_refresh_token' , '' ); ?>
                        <?php update_option( 'uty_google_client_api' , '' ); ?>
                        <?php update_option( 'uty_google_client_id' , '' ); ?>
                        <?php update_option( 'uty_google_client_secret' , '' ); ?>
                        <?php update_option( 'uty_youtube_channel' , '' ); ?>
                    <?php } ?>
                    <h3>Please enter the below details to kick start your Youtube uploads</h3>

                    <?php if( !empty(get_option('uty_google_client_api')) && !empty(get_option('uty_google_client_id')) && !empty(get_option('uty_google_client_secret')) && empty(get_option('uty_refresh_token')) ){ ?>
                            <?php $state = mt_rand(); ?>
                            <?php $client->setState($state); ?>
                            <?php $_SESSION['state'] = $state; ?>
                            <?php $authUrl = $client->createAuthUrl(); ?>
                            <a href="<?php echo $authUrl; ?>">Click here to authorize your credentials</a>
                    <?php } elseif( !empty(get_option('uty_google_client_api')) && !empty(get_option('uty_google_client_id')) && !empty(get_option('uty_google_client_secret')) && !empty(get_option('uty_refresh_token')) ){ ?>

                    <?php } ?>
                </div>
            </div>
        </div>
    </div>
<?php } ?>

В приведенной выше функции главное, что я сделал, это сохранил refresh_token при первом входе пользователя в систему, а затем передал его в функциючтобы каждый раз получать новый токен доступа.

$client->refreshToken( get_option( 'uty_refresh_token' ) );
$_SESSION['token'] = $client->getAccessToken();
$client->setAccessToken($client->getAccessToken());

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...