Проблема с недействительной подписью токена OauthAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с недействительной подписью токена Oauth

Сообщение Anonymous »

Мы разрабатываем приложение, но столкнулись с проблемами с проверкой подлинности OAuth, и я не знаю, как действовать дальше. Приложение разработано с использованием Flutter, а серверная часть — с использованием Node.js. Код флаттера выглядит примерно так:

Код: Выделить всё

{
"commentid": 1,
"text": "Awesome photo!",
"userid": "666414da008a0fc1d6ec3ef1",
"username": "expandingplayboy2202",
"cheers": 3,
"createdat": "2024-06-16T20:52:03.229Z",
"boos": 0,
"award_type": [
"Park bench",
"Sunflower"
],
"user_picture": null,
"user_username": null
},
и внутренний код:

Код: Выделить всё

exports.googleAuth = async (req, res) => {

try {
const { token } = req.body;
const client = new OAuth2Client();
const ticket = await client.verifyIdToken({
idToken: token,
requiredAudience: process.env.CLIENT_ID,
});
const payload = ticket.getPayload();

if (!payload) {
errorLogger.error("Invalid token provided for Oauth");
res.status(400).json({
message: "invalid token",
});
}

const { email, email_verified, given_name, family_name } = payload;

if (!email_verified) {
errorLogger.error("Email is not verified");
res.status(400).json({
message: "Email is not verified",
});
}
let username = generateUsername() + Math.floor(Math.random() * 10000);
while (await User.findOne({ username })) {
username = generateUsername() + Math.floor(Math.random() * 10000);
}
try {
const picture = `https://api.multiavatar.com/${username}.png?apikey=${AVATAR_KEY}`;
const user = await User.create({
username: username,
password: password,
email: email.toLowerCase(),
picture: picture,
auth_type: "email",
});
activityLogger.info("User logged in successfully");
sendToken(user, 200, res);
} catch (error) {
errorLogger.error("Error in Oauth:", err);
res.status(500).json({
message: err,
});
}

} catch (err) {
errorLogger.error("Error in Oauth:", err);
res.status(500).json({
message: "Error in Oauth",
});
}
};
Теперь я проверил это несколько раз, и идентификатор клиента в серверной части совпадает с идентификатором токена, созданного приложением Flutter.
Токен создается идентификатором клиента веб-приложения. а также выполнили настройку приложения, используя документацию Google. Что мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ture-issue
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»