问题描述
我想在 Laravel 8 中实现 Twitter 身份验证。
我正在使用社交名媛。
本地操作检查成功。
我通过 Twitter 进行了身份验证并能够获得该名称。
当我部署到 Heroku 时,出现错误。
Heroku 的环境变量(TWITTER_KEY、TWITTER_REDIRECT_URI、TWITTER_SECRET)已设置。
heroku run composer show -i
laravel / socialite 和 socialiteproviders/twitter 和 socialiteproviders/manager 已上传到 heroku。
[状态] 从 Laravel8 应用程序启动 Twitter 身份验证时出错。
League\OAuth1\Client\Signature\HmacSha1Signature::League\OAuth1\Client\Signature\{closure}(): Argument #2 ($value) must be passed by reference,value given
[环境]
赫鲁库
Laravel8
索西莱特
我英语不好,但我会尽力的。谢谢。
解决方法
此错误已在此处解决:https://github.com/thephpleague/oauth1-client/issues/127 我要求发布新版本。因此,您要么等待新版本,要么(暂时)需要包含错误修复的最新开发版本:
composer require league/oauth1-client:dev-master
,
我只想分享我想出的另一个解决方案。由于该错误仅发生在 PHP 8 上,您也可以将 Composer 要求更改为不使用 PHP 8(如果您没有依赖于该版本的要求)。
要更改它,您可以编辑您的 composer.json 文件并更改此行:
"require": {
"php": "^7.3|^8.0",
为此:
"require": {
"php": "^7.3",
然后运行composer update
。希望对遇到此问题的其他人有用