问题描述
Facebook,LinkedIn,Google,GitHub,GitLab,Bitbucket和其他许多支持OAuth2的基于用户的身份验证。但Twitter仍仅使用Oauth1。
if ($provider === "twitter") {
return Socialite::driver($provider)
->userFromTokenAndSecret(
env("TWITTER_ACCESS_TOKEN"),env("TWITTER_ACCESS_TOKEN_SECRET")
)
->redirect();
遇到此问题:
Symfony\Component\Debug\Exception\FatalThrowableError
Call to undefined method Laravel\Socialite\One\User::redirect()
我想重定向到回调中:
https://example.com/api/login/twitter/callback
任何帮助!
解决方法
您可以使用Socialite::with($provider)->redirect();
进行重定向。但是您必须先将回调URL和ID一起存储在config/services.php
文件中。
'twitter' => [
'client_id' => env('TWITTER_CLIENT_ID'),'client_secret' => env('TWITTER_CLIENT_SECRET'),Client Secret
'redirect' => env('TWITTER_CALLBACK_URL'),],
然后在回调函数Socialite::driver($provider)->user();
中获取用户。