php - 获取临时凭据时收到带有消息“{“errors”:[{“code”:32,“message”:“无法验证您。”}]}“的HTTP状态代码[401]
问题描述
我正在使用 laravel/socialite 包。
我正在尝试使用 twitter 登录 API,但在获取临时凭据时出现此错误:
收到 HTTP 状态代码 [401] 和消息“{“errors”:[{“code”:32,"message":"Could not authenticate you."}]}"
// config/services.php
'twitter' => [
'client_id' => env('TWITTER_APP_API_KEY'),
'client_secret' => env('TWITTER_APP_API_SECRET'),
'redirect' => env('TWITTER_APP_CALLBACK'),
],
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
class SocialController extends Controller
{
public function redirect($provider)
{
return Socialite::driver($provider)->redirect();
}
public function callback($provider)
{
$user = Socialite::driver($provider)->user();
return (array)$user;
}
}
// routes/web.php
Route::get('/redirect/{provider}', [SocialController::class, 'redirect']);
Route::get('{provider}/callback', [SocialController::class, 'callback']);
// .env
TWITTER_APP_API_KEY=MY_TWITTER_APP_API_KEY
TWITTER_APP_API_SECRET=MY_TWITTER_APP_API_SECRET
TWITTER_APP_CALLBACK=http://mywebsite.test/twitter/callback
解决方案
我在阅读 laravel/socailite 文档后解决了问题
我不需要添加以下代码
//config/app.php
....
....
'providers' => [
....
....
Laravel\Socialite\SocialiteServiceProvider::class,
],
'aliases' => [
....
....
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
....
....
我需要做的
composer require laravel/socialite
然后执行以下步骤:
# install
composer require socialiteproviders/twitter
# register
protected $listen = [
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
'SocialiteProviders\Twitter\TwitterExtendSocialite@handle'
],
];
# configure
'twitter' => [
'client_id' => env('TWITTER_KEY'),
'client_secret' => env('TWITTER_SECRET'),
'redirect' => env('TWITTER_REDIRECT_URI'),
]
# start building
return Socialite::driver('twitter')->redirect();
您可以在此处安装任何社交名流提供者表格:https ://socialiteproviders.com/
推荐阅读
- ios - Swift核心图像对没有CIFilter的图像应用锐化
- php - Coinbase api返回大部分是空的arrey
- python - 渲染方程 - 计算矢量化
- java - 无法将 textview 绑定到来自公开不可实例化的最终类的静态方法
- python - Django - 未找到视图功能的反向
- python - 你如何从python中的概率列表中采样
- c++ - 进程崩溃时如何释放 boost::interprocess::named_mutex
- python - 无法将字符串列转换为浮点数
- c - 如何在内核模块中获取真实文件名
- debugging - 如何退出 LispWorks REPL 调试器,返回到顶层,只输入一个数字,比如 SBCL?