Fixed login issues
This commit is contained in:
@ -31,36 +31,37 @@ router.post('auth.slack', async (ctx) => {
|
|||||||
|
|
||||||
// Temp to block
|
// Temp to block
|
||||||
let allowedSlackIds = process.env.ALLOWED_SLACK_IDS.split(',');
|
let allowedSlackIds = process.env.ALLOWED_SLACK_IDS.split(',');
|
||||||
if (!allowedSlackIds.includes(data.team_id)) throw httpErrors.BadRequest("Invalid Slack team");
|
if (!allowedSlackIds.includes(data.team.id)) throw httpErrors.BadRequest("Invalid Slack team");
|
||||||
|
|
||||||
// User
|
// User
|
||||||
let userData;
|
let userData;
|
||||||
let user = await User.findOne({ where: { slackId: data.user_id }});
|
let user = await User.findOne({ where: { slackId: data.user.id }});
|
||||||
|
|
||||||
|
const authResponse = await fetch(`https://slack.com/api/auth.test?token=${data.access_token}`);
|
||||||
|
const authData = await authResponse.json();
|
||||||
|
|
||||||
if (user) {
|
if (user) {
|
||||||
user.slackAccessToken = data.access_token;
|
user.slackAccessToken = data.access_token;
|
||||||
user.save();
|
user = await user.save();
|
||||||
} else {
|
} else {
|
||||||
// Find existing user
|
// Existing user
|
||||||
const userParams = { token: data.access_token, user: data.user_id }
|
|
||||||
const response = await fetch('https://slack.com/api/users.info?' + querystring.stringify(userParams));
|
|
||||||
userData = await response.json();
|
|
||||||
user = await User.create({
|
user = await User.create({
|
||||||
slackId: data.user_id,
|
slackId: data.user.id,
|
||||||
username: userData.user.name,
|
username: authData.user,
|
||||||
name: userData.user.profile.real_name,
|
name: data.user.name,
|
||||||
email: userData.user.profile.email,
|
email: data.user.email,
|
||||||
slackData: userData.user,
|
slackData: data.user,
|
||||||
slackAccessToken: data.access_token,
|
slackAccessToken: data.access_token,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Team
|
// Team
|
||||||
let team = await Team.findOne({ where: { slackId: data.team_id } });
|
let team = await Team.findOne({ where: { slackId: data.team.id } });
|
||||||
if (!team) {
|
if (!team) {
|
||||||
team = await Team.create({
|
team = await Team.create({
|
||||||
slackId: data.team_id,
|
name: data.team.name,
|
||||||
name: data.team_name,
|
slackId: data.team.id,
|
||||||
|
slackData: data.team,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +73,7 @@ router.post('auth.slack', async (ctx) => {
|
|||||||
team: await presentTeam(team),
|
team: await presentTeam(team),
|
||||||
accessToken: user.getJwtToken(),
|
accessToken: user.getJwtToken(),
|
||||||
}};
|
}};
|
||||||
|
console.log("enf")
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
@ -29,8 +29,7 @@ const User = sequelize.define('user', {
|
|||||||
},
|
},
|
||||||
indexes: [
|
indexes: [
|
||||||
{
|
{
|
||||||
unique: true,
|
fields: ['email'],
|
||||||
fields: ['email']
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
@ -8,7 +8,7 @@ export function presentUser(user) {
|
|||||||
name: user.name,
|
name: user.name,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
email: user.email,
|
email: user.email,
|
||||||
avatarUrl: user.slackData.profile.image_192,
|
avatarUrl: user.slackData.image_192,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,12 @@ export default class SlackAuthLink extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
scopes: ['identify']
|
scopes: [
|
||||||
|
'identity.email',
|
||||||
|
'identity.basic',
|
||||||
|
'identity.avatar',
|
||||||
|
'identity.team',
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount = () => {
|
componentDidMount = () => {
|
||||||
|
Reference in New Issue
Block a user