微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Laravel-Socialite如何在身份验证后将API范围从OAUTH2更改为Youtube.readonly

如何解决使用Laravel-Socialite如何在身份验证后将API范围从OAUTH2更改为Youtube.readonly

我正在使用Laravel社交包和socialiteproviders / youtube。我使用他们的Google凭据登录用户,后来我需要访问他们的YouTube频道并将他们的视频链接到我的网站。问题是,如果我最初使用youtube.readonly登录,则某些用户没有频道,这将导致错误。为了防止我想用google登录,那么无论谁拥有youtube频道,我都希望他们能够将他们的视频加载到我的网站上。 我尝试使用youtube.readonly范围对用户进行签名,但它只能在用户有频道时才能正常工作,这就是为什么我切换为使用Google唱歌,但我不知道如何同时使用它们和从google顺利迁移到youtube。>

下面是我的代码

 //Google Controller    
 public function redirectToGoogle()
 {
    return Socialite::driver('google')->redirect();
 }
 public function handleGoogleCallback()
 {
    try {
  
        $user = Socialite::driver('google')->user();
       
        $finduser = User::where('google_id',$user->id)->first();
   
        if($finduser){
   
            Auth::login($finduser);
            
            //do stuff with user
   
        }else{
            $newUser = User::create([
                'name' => $user->name,'email' => $user->email,'google_id'=> $user->id,'password' => encrypt('123')
            ]);
  
            Auth::login($newUser);
              
            return redirect()->intended('dashboard');
        }
  
      } catch (Exception $e) {
        dd($e->getMessage());
      } 
   }

处理YouTube频道的控制器:

 class YoutubeController extends Controller
 {
 
 public function redirectToYoutube()
 {
    //When I run this I get an error `401 Unauthorized` response (invalid request & invalid 
    // credentials) I think because user is already signed in.
    return Socialite::driver('google')->redirect();
 }
    
public function handleYoutubeCallback()
{
    $user = Socialite::driver('youtube')->user();
       //Some code here
}
}

我不确定是否可以将范围从google oauth2更改为youtube.readonly,以便获得新的youtube同意屏幕,而无需再次唱歌。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。