У меня есть приложение iOS и серверная часть nodeJS. На данный момент я реализовал стратегию паспорт-фейсбук. Из приложения я получаю токен facebook и отправляю его на бэкэнд, где авторизую пользователя.
// config
var FacebookTokenStrategy = require('passport-facebook-token');
const passport = require('passport')
const { facebook_client_id, facebook_client_secret } = require('../config')
passport.use(new FacebookTokenStrategy({
clientID: facebook_client_id,
clientSecret: facebook_client_secret,
}, function (accessToken, refreshToken, profile, done) {
done(null, profile)
}
));
И промежуточное ПО
const passport = require('passport')
require('../config/passport-facebook')
require('../config/passport-apple')
require('../config/passport')
const { INVALID_TOKEN, UNAUTHORIZED } = require('../config/constants')
module.exports = (req, res, next) => {
passport.authenticate(['apple','facebook-token', 'jwt'], function (err, user, info) {
if (err) {
if (err.oauthError) {
res
.status(400)
.json({ message: INVALID_TOKEN })
}
} else if (!user) {
res
.status(401)
.json({ message: UNAUTHORIZED })
} else {
req.user = user
next()
}
})(req, res, next);
}
Теперь мне нужно реализовать вход в систему через Apple. Пробовал использовать эту библиотеку паспорт-яблоко Но не могу заставить работать. Я получаю токен из приложения, отправляю его обратно, но получаю только
GET - /api/v1/shirts/?sorted%5BcreatedAt%5D=-1&filtered%5Bstate%5D=&pageNum=1&pageSize=10 - 302 - Found - 0b sent - 15 ms
Я не знаю, правильный ли это подход. Должен ли я получить информацию о пользователе из приложения, отправить ее на бэкэнд и назначить токен JWT созданному пользователю? Или как я могу сделать то же самое, что и с facebook?