问题描述
Laravel社交微博(Oauth1)
我在通过laravel社交网站登录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 ?谢谢
解决方法
您必须从请求中获取$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。