PHP Twitter 推特 第三方登录

这篇具有很好参考价值的文章主要介绍了PHP Twitter 推特 第三方登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文档 & 平台 & 说明

  • twitter登录文档
  • 开发者平台
  • 申请成为开发流程按引导操作就可以了, 但是要注意信息填写要真实完善的信息, 否则容易被拒绝(被拒绝可能不能二次申请, 之前不能, 现在不知道能不能)
  • 目前推特一个号只能开通一个免费应用, 可付费开通多个
  • 设置基础信息登录twitter代码生成器,PHP,第三方登录,php
  • User authentication settings 用户认证设置
    登录twitter代码生成器,PHP,第三方登录,php
    登录twitter代码生成器,PHP,第三方登录,php
    需要填写重定向地址, 与之后代码中重定向地址要相同
  • 使用 OAuth 2.0, v2 Twitter API 端点, 所以使用 OAuth 2.0的clientID 及 Secret
    登录twitter代码生成器,PHP,第三方登录,php

流程

  • 生成跳转到twitter授权页面的url
  • 授权后会带着用户code重定向到你的重定向地址
  • 用code获取 access_token
  • 用access_token获取用户信息
  • 获取到用户信息之后就是本身的登录或者注册流程了

代码

HTML

# 一个点击跳转的按钮即可
<a class="animate" href="/signin?type=twitter" target="_blank"></a>

PHP

/**
 *	登录/注册
 */
public function signin(Request $request)
{
	$type = $request->get('type');
	if ($type == 'twitter') {
	    // 生成跳转到twitter授权页面的url, 重定向到授权页面
		$twitterModel = New NewTwitterLogin()
		$uri = $twitterModel->createOauthLink();
		return redirect()->away($url);
	}
}

/**
 *	twitter 回调接口
 */
public function callBackTwitter()
{
	// 获取重定向链接中的code
	$code = $request->get('code');
    $twitter = new NewTwitterLogin();
    // 用code 获取 access_token
    $token = $twitter->getAccessToken($code);
    // 用 access_token 获取用户信息
    $userInfo = $twitter->getUserInfo($token);
    // 处理自己的登录/注册逻辑
}

  • NewTwitterLogin.php model文件
<?php

namespace App\Http\Models\Website;

class NewTwitterLogin 
{

    private $key = '*****';
    private $secret = '*********';
    // oauth 2.0 使用
    private $clientId = '********';
    private $clientSecret = '*******';
    private $redirect_uri = '*****' // 重定向url

    // 创建链接
    public function createOauthLink()
    {
        $url = "https://twitter.com/i/oauth2/authorize?response_type=code&client_id={$this->clientId}&redirect_uri={$this->redirect_uri}&scope=users.read%20tweet.read&state=twitter&code_challenge=challenge&code_challenge_method=plain";
        
        return $url;
    }

    /**
     * 获取access_token
     * 
     * @param string code 登录授权后返回用户code
     */
    public function getAccessToken($code)
    {
        $url = 'https://api.twitter.com/2/oauth2/token';
        // Authorization Basic
        $basic = base64_encode($this->clientId . ':' . $this->clientSecret);
        $header = [
            "Content-Type: application/x-www-form-urlencoded",
            "Authorization: Basic $basic",
        ];
        $data = [
            'code' => $code,
            'grant_type' => 'authorization_code',
            'redirect_uri' => $this->redirect_uri,
            'code_verifier' => 'challenge',
        ];
        $data = http_build_query($data);
        $res = $this->curlMethod($url, $header, $data);
        return $res['access_token'];
    }

    /**
     * 获取用户信息
     */
    public function getUserInfo($token)
    {
        $uri = 'https://api.twitter.com/2/users/me';
        $header = [
            "Authorization: Bearer $token",
        ];
        $res = $this->curlMethod($uri, $header, [], 'GET');
        return $res['data'];
    }

    public function curlMethod($uri, $header, $data = [], $method = 'POST', $json = true)
    {
        $curl = curl_init();
        if ($data && is_array($data) && $json) {
            $data = json_encode($data);
        }
        curl_setopt_array($curl, array(
            CURLOPT_URL => $uri,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            // CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => $method,
            CURLOPT_POSTFIELDS => $data,
            CURLOPT_HTTPHEADER => $header,
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);
        return json_decode($response, true);
    }
}

文章来源地址https://www.toymoban.com/news/detail-853029.html

到了这里,关于PHP Twitter 推特 第三方登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php第三方阿里云接口

    阿里云 OpenAPI 开发者门户

    2024年02月15日
    浏览(38)
  • Gitee第三方登录

    写这篇文章时,参考了一位大佬的文章,算是把大佬文章里一些不详细的部分补充完整了,但是核心的代码没有什么改动,只是抛弃掉了那个重定向的工具类,以下是大佬文章的链接:http://t.csdn.cn/0L7T4 1、登录gitee 官网:https://gitee.com/ 2、注册或登录账号 3、进入 设置》第三

    2024年02月12日
    浏览(56)
  • Springboot整合第三方登录

    Springboot整合第三方登录 为什么采用第三方登录 ​ 采用第三方登录可以避免重新注册账号的繁琐,也不需要再为密码和昵称发愁,而第三方登录有一个比较好用的包,里面整合了多种第三方登录,开箱即用,非常方便。就是JustAuth,网址https://www.justauth.cn/。 整合第三方登录

    2024年02月09日
    浏览(45)
  • 微信小程序第三方登录

    目录 小程序第三方登录操作流程如下: 1.第一步 2.第二步 2.第三步 4.第四步 5.第五步 注意:如果第一步没打印出来,看看微信模拟器上的Id有没有更改,或则去源码试图,weixinId更改 进入uniapp官网=Api=第三方服务=登录=微信小程序登录 创建一个触发事件,获取头像和名称 调用

    2024年02月13日
    浏览(77)
  • 实现 Google 第三方授权登录

    最近做项目要实现Google的第三方登录,这简单的记录一下。 目前Google的第三方登录有很多方案,且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Google OAuth 2.0 的方案。 当然,也可以 《实现 Facebook 第三方授权登录》 Google 的 OAuth 2.0 流程 首先

    2024年02月09日
    浏览(44)
  • 若依 关于 springsecurity 不用密码登录,自定义第三方登录、免登录

    用的是若依的前后端分离的版本,项目接口是给小程序用 openid 直接免登录 找到登录方法 他这是根据用户名和密码进行比对、由于密码没办法转换成明文 只能改成如下方法免登录

    2024年02月07日
    浏览(53)
  • uniapp 对接谷歌第三方登录

    1.登录谷歌开发者后台 https://console.developers.google.com/ 2.添加凭证 3.拿到客户端id后,项目中配置google登录:  示例代码:

    2024年04月29日
    浏览(47)
  • 使用开源项目JustAuth完成第三方登录

    JustAuth项目源码地址:https://github.com/justauth/JustAuth JustAuth文档地址:https://justauth.wiki/guide/quickstart/oauth/ 此demo的项目地址:xfeng520/JustAuthDemo (gitee.com) 开发者 指使用 JustAuth 的开发者 第三方 指开发者对接的第三方网站,比如:QQ平台、微信平台、微博平台 用户 指最终服务的真实

    2023年04月22日
    浏览(85)
  • 前端使用firebase配置第三方登录介绍(谷歌登录,facebook登录等)

    点此处去 firebase 官网 点此处去 web端的谷歌登录文档 点此处去 facebook开发者官网链接 首先注册一个账号登录firebase(可以使用谷歌账号登录) 然后创建项目(走默认配置就行了) 添加应用(走默认配置),如图所示,本文介绍web应用。 应用添加完毕后走项目设置-如下图(

    2024年04月13日
    浏览(48)
  • 若依实现第三方登录,史上最全保姆级教程

    2.3.1:实体类 2.3.2:mapper.java 2.3.3:mapper对应的xml 2.3.4:service接口 2.3.5:service实现类 2.3.5:SysUserThirdAccountController 3.8.1:在原来的注入UserDetailsService类上添加注解指定userDetailsByPasswordService 3.8.2:添加认证白名单,这几个链接配置为免登录链接 3.8.3:将AuthenticationGiteeProvider注入

    2024年01月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包