mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2026-01-20 20:01:22 +00:00
Merge remote-tracking branch 'Gerald1614/500_error_on_login' into 49_fix_no_user_with_that_email
This commit is contained in:
commit
ffafd72c79
@ -2,9 +2,9 @@
|
|||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
import bcrypt from 'bcryptjs'
|
import bcrypt from 'bcryptjs'
|
||||||
import zipObject from 'lodash/zipObject'
|
|
||||||
import generateJwt from './jwt/generateToken'
|
import generateJwt from './jwt/generateToken'
|
||||||
import { fixUrl } from './middleware/fixImageUrlsMiddleware'
|
import { fixUrl } from './middleware/fixImageUrlsMiddleware'
|
||||||
|
import { AuthenticationError } from 'apollo-server'
|
||||||
|
|
||||||
export const typeDefs =
|
export const typeDefs =
|
||||||
fs.readFileSync(process.env.GRAPHQL_SCHEMA || path.join(__dirname, 'schema.graphql'))
|
fs.readFileSync(process.env.GRAPHQL_SCHEMA || path.join(__dirname, 'schema.graphql'))
|
||||||
@ -95,32 +95,24 @@ export const resolvers = {
|
|||||||
// if (user && user.id) {
|
// if (user && user.id) {
|
||||||
// throw new Error('Already logged in.')
|
// throw new Error('Already logged in.')
|
||||||
// }
|
// }
|
||||||
|
|
||||||
const session = driver.session()
|
const session = driver.session()
|
||||||
const res = await session.run('MATCH (u:User {email: "' + email + '"}) RETURN u.id, u.slug, u.name, u.avatar, u.email, u.password, u.role LIMIT 1')
|
return session.run(
|
||||||
let u = res.records[0]._fields ? zipObject([
|
'MATCH (user:User {email: "' + email + '"}) ' +
|
||||||
'id',
|
'RETURN user {.id, .slug, .name, .avatar, .email, .password, .role} as user LIMIT 1')
|
||||||
'slug',
|
.then(async (result) => {
|
||||||
'name',
|
session.close()
|
||||||
'avatar',
|
const [currentUser] = await result.records.map(function (record) {
|
||||||
'email',
|
console.log(record.get('user'))
|
||||||
'password',
|
return record.get('user')
|
||||||
'role'
|
|
||||||
], res.records[0]._fields) : null
|
|
||||||
if (u) {
|
|
||||||
if (await bcrypt.compareSync(password, u.password)) {
|
|
||||||
delete u.password
|
|
||||||
u.avatar = fixUrl(u.avatar)
|
|
||||||
return Object.assign(u, {
|
|
||||||
token: generateJwt(u)
|
|
||||||
})
|
})
|
||||||
}
|
if (currentUser && await bcrypt.compareSync(password, currentUser.password)) {
|
||||||
session.close()
|
delete currentUser.password
|
||||||
throw new Error('Incorrect password.')
|
currentUser.avatar = fixUrl(currentUser.avatar)
|
||||||
}
|
return Object.assign(currentUser, {
|
||||||
|
token: generateJwt(currentUser)
|
||||||
session.close()
|
})
|
||||||
throw new Error('No Such User exists.')
|
} else throw new AuthenticationError('Incorrect username or password.')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user