/** * Connect the current user to Last.fm. * * @param Redirector $redirector * @param Lastfm $lastfm * * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */ public function connect(Redirector $redirector, Lastfm $lastfm) { if (!$lastfm->enabled()) { abort(401, 'Koel is not configured to use with Last.fm yet.'); } return $redirector->to('https://www.last.fm/api/auth/?api_key=' . $lastfm->getKey() . '&cb=' . route('lastfm.callback')); }
/** * Connect the current user to Last.fm. * * @param Redirector $redirector * @param Lastfm $lastfm * @param JWTAuth $auth * * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */ public function connect(Redirector $redirector, Lastfm $lastfm, JWTAuth $auth = null) { abort_unless($lastfm->enabled(), 401, 'Koel is not configured to use with Last.fm yet.'); $auth = $auth ?: $this->app['tymon.jwt.auth']; // A workaround to make sure Tymon's JWTAuth get the correct token via our custom // "jwt-token" query string instead of the default "token". // This is due to the problem that Last.fm returns the token via "token" as well. $auth->parseToken('', '', 'jwt-token'); return $redirector->to('https://www.last.fm/api/auth/?api_key=' . $lastfm->getKey() . '&cb=' . urlencode(route('lastfm.callback') . '?jwt-token=' . $auth->getToken())); }