Laravel社交名媛Twitter

时间:2020-10-28 03:47:39

标签: laravel twitter oauth twitter-oauth laravel-socialite

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 ?谢谢

1 个答案:

答案 0 :(得分:0)

您必须从请求中获取$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。