我有一个iOS应用程序和nodeJS后端。目前,我已经实施了护照-facebook战略。从应用程序中,我得到了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);
}现在我需要实现苹果登录。我试过使用这个库护照-苹果,但我无法使它工作。我正在从应用程序接收令牌,发送到后面,但我只收到
GET - /api/v1/shirts/?sorted%5BcreatedAt%5D=-1&filtered%5Bstate%5D=&pageNum=1&pageSize=10 - 302 - Found - 0b sent - 15 ms我不知道这是不是正确的方法。我是否应该从应用程序中获取用户信息,将其发送到后端,并为创建的用户分配一个JWT令牌?或者我怎样才能像我在facebook上那样做呢?
发布于 2020-10-07 11:49:26
经过几次尝试,我找到了这个解决方案,多亏了这个文档令牌
你需要把它发到你的贴子上:
{
"grant_type": "authorization_code",
"code": "YOUR_CODE",
}代码:
“在发送给您的应用程序的授权响应中接收到的授权代码。该代码仅为一次使用,有效期为5分钟。此参数用于授权代码验证请求。”苹果文档
https://stackoverflow.com/questions/62082795
复制相似问题