gpt4 book ai didi

php - 使用 Google OAuth 进行身份验证

转载 作者:搜寻专家 更新时间:2023-10-31 21:16:44 24 4
gpt4 key购买 nike

我目前正在为我的站点开发 OAuth 身份验证系统,该系统允许用户通过 Google API 登录。

我正在使用 Codeigniter 2.0.2,我的服务器上没有编译 PECL OAuth,所以我必须使用原始 php 来执行此操作。

我已经通过 Google 对用户进行了身份验证,并为该用户取回了 oauth_tokenoauth_token_secret

但在无休止地阅读协议(protocol)后,我仍然无法找到 oauth_keyoauth_token_secret 如何访问其他 API 以收集以下信息:

  • 电子邮件地址
  • 头像
  • 全名
  • 地点

这是我用来验证的当前代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class OAuth extends CI_Controller
{
public function __construct()
{
parent::__construct();

$this->load->library('google_oauth',array(
'key' => '*REMOVED*',
'secret' => '*REMOVED*',
'algorithm' => 'HMAC-SHA1'
));
}

public function login()
{
//Get Request Token
$response = $this->google_oauth->get_request_token(
site_url("/oauth/collect"),
'http://www.google.com/m8/feeds/'
);

//Store temp
$this->session->set_flashdata('g.token.secret', $response['token_secret']);

//Redirect
redirect($response['redirect']);
}

public function collect()
{
$token_s = $this->session->flashdata('g.token.secret');
if(!$token_s)
{
$this->session->set_flashdata('error','Invalid auth session data, please rety your login');
redirect();
}

$oauth = $this->google_oauth->get_access_token(false, $token_s);

/*Check the data is valid*/
if(!isset($oauth['oauth_token']) || !isset($oauth['oauth_token_secret']))
{
$this->session->set_flashdata('error','Unable to authecticate securly with Google, please try again');
redirect();
}

$token = $oauth['oauth_token'];
$secret = $oauth['oauth_token_secret'];

//Will Store Here
}
}

我目前使用的是这个认证类的一个稍微修改过的版本:

https://github.com/jimdoescode/CodeIgniter-YouTube-API-Library/blob/master/application/libraries/google_oauth.php

最佳答案

您尝试过使用 Google OAuth Playground 进行试验吗? ?它有助于确定您可以访问哪些 API 源和构建有效的请求字符串。

以下是您可以访问的 Google API 列表:Google API Directory

希望对你有帮助

关于php - 使用 Google OAuth 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com