首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wordpress中使用google api登录

在wordpress中使用google api登录
EN

Stack Overflow用户
提问于 2018-10-15 00:59:16
回答 1查看 420关注 0票数 0

我正在用google api在Wordpress上编写函数登录(我自己写的,不是插件),但我有一个问题。想法如下: 1.从google获取token来获取信息(我做到了)。2.比较邮箱和account.If结果为真,不使用密码登录。我在第二步中遇到了一个问题。结果返回true,但是我不明白为什么页面会超载。我使用debug检查值,但没有检查任何内容,我删除了函数"loggIn()",代码运行。下面是我的代码:enter image description here

EN

回答 1

Stack Overflow用户

发布于 2018-10-15 02:58:40

有一段时间,我为后端做了一些类似的东西。

代码语言:javascript
复制
<?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,然后将其传递到函数中,以便每次都获得新的访问令牌。

代码语言:javascript
复制
$client->refreshToken( get_option( 'uty_refresh_token' ) );
$_SESSION['token'] = $client->getAccessToken();
$client->setAccessToken($client->getAccessToken());

希望这能对你有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52805013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档