簡體   English   中英

錯誤:未知的身份驗證策略“spotify”

[英]Error: Unknown authentication strategy "spotify"

當我嘗試我的代碼“錯誤:未知身份驗證策略“spotify””時出現錯誤。 我什至嘗試用谷歌搜索這個問題,但找不到答案

代碼

const express = require('express')
const app = express()
const passport = require('passport')

app.get('/', passport.authenticate('spotify'), (req, res)=>{
    res.redirect('http://localhost:3001/user')
}) 
app.get('/user', (req, res) => {
    if(req.user == undefined){res.status(401).redirect('http://localhost:3001/')}else{res.send(req.user)}
})

module.exports = app

在使用它進行身份驗證之前,您還必須導入passport-spotify package。 首先,安裝 package ( npm i passport-spotify ) 然后在文件中要求它:

const SpotifyStrategy = require('passport-spotify').Strategy;

然后,您必須先調用passport.use() function 才能使用passport進行身份驗證:

passport.use(
  new SpotifyStrategy(
    {
      clientID: client_id,
      clientSecret: client_secret,
      callbackURL: 'http://localhost:8888/auth/spotify/callback'
    },
    function(accessToken, refreshToken, expires_in, profile, done) {
      User.findOrCreate({ spotifyId: profile.id }, function(err, user) {
        return done(err, user);
      });
    }
  )
);

最后,您可以將其用作 Express 中間件。 您修改后的代碼如下所示:

const express = require('express')
const app = express()
const passport = require('passport')
const SpotifyStrategy = require('passport-spotify').Strategy;

passport.use(
  new SpotifyStrategy(
    {
      clientID: client_id,
      clientSecret: client_secret,
      callbackURL: 'http://localhost:8888/auth/spotify/callback'
    },
    function(accessToken, refreshToken, expires_in, profile, done) {
      User.findOrCreate({ spotifyId: profile.id }, function(err, user) {
        return done(err, user);
      });
    }
  )
);
app.get('/', passport.authenticate('spotify'), (req, res)=>{
    res.redirect('http://localhost:3001/user')
}) 
app.get('/user', (req, res) => {
    if(req.user == undefined){res.status(401).redirect('http://localhost:3001/')}else{res.send(req.user)}
})

module.exports = app

參考http://www.passportjs.org/packages/passport-spotify/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM