![](/img/trans.png)
[英]Error: Unknown authentication strategy “local” (Express & Passport)
[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.