Spotify的Facebook登录名重定向到空白页,而不是Spotify

时间:2019-03-24 21:02:35

标签: facebook authentication ionic-framework spotify

当遵循Spotify授权流程并在我的Ionic Framework应用程序(在iOS中运行)中使用Facebook登录选项时,在完成Facebook登录后,Safari View Controller重定向到空白页面而不是Spotify页面,显示用户的信息和注销选项。

我遵循了《 Spotify授权指南》(https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow)中的代码示例。我在下面包括了回调函数。

app.get('/callback', function(req, res) {
  // your application requests refresh and access tokens
  // after checking the state parameter
  var code = req.query.code || null;
  var state = req.query.state || null;
  var storedState = req.cookies ? req.cookies[stateKey] : null;

  if (state === null || state !== storedState) {
    res.redirect('/#' +
      querystring.stringify({
        error: 'state_mismatch'
      }));
  } else {
    res.clearCookie(stateKey);
    var authOptions = {
      url: 'https://accounts.spotify.com/api/token',
      form: {
        code: code,
        redirect_uri: redirect_uri,
        grant_type: 'authorization_code'
      },
      headers: {
        'Authorization': 'Basic ' + (new Buffer.from(client_id + ':' + client_secret).toString('base64'))
      },
      json: true
    };

    request.post(authOptions, function(error, response, body) {
      if (!error && response.statusCode === 200) {
        console.log("Successful response")
        var access_token = body.access_token,
            refresh_token = body.refresh_token;
        console.log("Attempting to redirect");
        res.redirect('APPNAME://token#' + access_token);
      } else {
        res.redirect('/#' +
          querystring.stringify({
            error: 'invalid_token'
          }));
      }
    });
  }
});

身份验证可以正常工作,但是空白页不会给用户那种感觉。当我在safariViewController上按完成时,该应用程序将按预期进行。同样,当我刷新safariViewController时,也会加载Spotify用户页面,其中显示了用户个人资料图像以及注销选项。我只是不确定为什么我必须按刷新才能显示出来。我尝试使用一些异步/等待没有成功。

请注意,加载空白页时,safari视图控制器将页面显示为“ facebook.com”,而当我按刷新时,safari视图控制器将显示“ accounts.spotify.com”。

0 个答案:

没有答案