PHP第三方登录

一、基本操作

1.下载qq官方sdk,注册开发者,创建应用

需要填写可访问完整域名地址和回调地址
配置参数 appid appkey
回调地址(回调地址需要与申请的回调地址完全一致 包括http:// 等内容)

2.实例化qc类 请求login方法获取code
$qc = new QC();
$qc->qq_login(); //会自动跳转到登录页,用户操作完成跳转到回调地址
3.在回调地址请求qq_callback 获取accesstoken
$qc->qq_callback(); //接收code 返回access_token
4.请求get_openid 获取用户的openid (openid为qq的唯一标识,存入数据库)
$access_token = $qc->get_access_token(); 
$openid = $qc->get_openid();
5.将access_token 和 openid 存入session或cookie
$_SESSION('access_token', $access_token);
$_SESSION('openid', $openid);
6.重定向到首页或者用户个人中心页面
header("Location:index.php");
7.在首页判断登录状态 调用api
if ($_SESSION['access_token'] && $_SESSION['openid']) {
    $user_info = $qc->get_user_info($_SESSION['access_token'], $_SESSION['openid']);
    var_dump($user_info);
}

二、调用api说明

1.实例化qc类()
2.使用 __call 魔术方法 调用相应的api 传入accesstoken和openid 获取response

三、基本流程

1.用户点击登录->
2.请求登录方法跳转至第三方登录页面->
3.第三方返回code 并重定向到回调地址->
4.根据code请求获得accesstoken->
5.根据accesstoken调用api
PHP实现微软第三方登录通常涉及到OAuth 2.0协议,这是一种安全的授权方式,允许用户让第三方应用访问他们存储在微软账户(例如Outlook、OneDrive等)的信息,而无需将用户名和密码提供给第三方应用。下面是实现微软第三方登录的基本步骤: 1. 注册应用:首先需要在微软的开发者平台(Microsoft Developer Network, MSDN)上注册你的应用,获取应用的ID和密钥。 2. 引导用户授权:用户在第三方网站点击“使用微软账户登录”按钮时,会被重定向到微软的授权页面。这里需要带上应用ID、请求的权限范围以及一个重定向URI。 3. 获取授权码:用户登录并同意授权后,微软会将用户重定向回之前提供的重定向URI,并带上一个授权码(authorization code)。 4. 获取访问令牌:应用需要使用上一步获取的授权码,向微软的服务端发送请求,交换得到访问令牌(access token)。访问令牌用于访问用户的个人信息。 5. 访问用户数据:拥有访问令牌后,应用可以使用它来访问用户的微软账户数据,例如邮箱、日历等。 实现微软第三方登录的代码示例: ```php // 引入PHP的cURL库 $ch = curl_init(); // 设置请求的URL,包括应用ID、重定向URI、请求权限范围等 $authUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id={YOUR_CLIENT_ID}&redirect_uri={YOUR_REDIRECT_URI}&scope={PERMISSION_SCOPES}'; // 执行cURL请求,获取授权页面 curl_setopt($ch, CURLOPT_URL, $authUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); // 输出或处理重定向后的URL,通常包含授权码 echo $response; ``` 请注意,上述代码仅为简化示例,实际应用中需要更加完善的安全措施,如验证SSL证书、处理错误和异常情况等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值