Laravel 社交名流推特
Posted
技术标签:
【中文标题】Laravel 社交名流推特【英文标题】:Laravel Socialite Twitter 【发布时间】:2021-02-10 10:12:11 【问题描述】:Laravel 社交名流 Twitter (Oauth1)
我在通过 laravel socialite 登录 Twitter 时遇到问题。
Socialite::driver('twitter')->user();
上面的代码抛出错误消息:
传递给 League\OAuth1\Client\Server\Server::getTokenCredentials() 的参数 1 必须是 League\OAuth1\Client\Credentials\TemporaryCredentials 的实例,给定为空
我查看了 Laravel Socialite 文档,它说要获取 twitter 帐户的用户详细信息,我应该使用
Socialite::driver('twitter')->userFromTokenAndSecret($token, $tokenSecret);
而不是
Socialite::driver('twitter')->user();
但是没有说明如何获取$token和$tokenSecret参数。我使用 twitter 应用程序中的密钥对 $token 和 $tokenSecret 进行了硬编码,但每次我登录其他帐户时,它仍然使用我理解的那个帐户,因为代码很难编码。有没有办法在用户登录时获取用户的 $token 和 $tokenSecret?谢谢
【问题讨论】:
你解决过这个问题吗? 【参考方案1】:您必须从请求中获取$token
和$token_secret
。
$provider = "twitter"
$token = trim($request->input("provider_token"));
$token_secret = trim($request->input("provider_token_secret"));
然后你可以将它们用于 OAuth1.0
Socialite::driver($provider)->userFromTokenAndSecret($token, $token_secret);
这里不能使用Socialite::driver($provider)->user($token);
,因为使用的是OAuth1.0。
【讨论】:
回调请求中不包含此信息。以上是关于Laravel 社交名流推特的主要内容,如果未能解决你的问题,请参考以下文章