mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-04 18:09:09 +00:00
API: add facebook auth route
This commit is contained in:
parent
704a056c47
commit
8e922bb151
2 changed files with 46 additions and 3 deletions
|
|
@ -94,9 +94,9 @@ router.put '/user', auth, (req, res) ->
|
|||
res.json 201, userObj
|
||||
|
||||
###
|
||||
POST /user/auth
|
||||
POST /user/auth/local
|
||||
###
|
||||
router.post '/user/auth', (req, res) ->
|
||||
router.post '/user/auth/local', (req, res) ->
|
||||
username = req.body.username
|
||||
password = req.body.password
|
||||
return res.json 401, err: 'No username or password' unless username and password
|
||||
|
|
@ -122,6 +122,27 @@ router.post '/user/auth', (req, res) ->
|
|||
id: u2.id
|
||||
token: u2.apiToken
|
||||
|
||||
###
|
||||
POST /user/auth/facebook
|
||||
###
|
||||
router.post '/user/auth/facebook', (req, res) ->
|
||||
{facebook_id, email, name} = req.body
|
||||
return res.json 401, err: 'No facebook id provided' unless facebook_id
|
||||
model = req.getModel()
|
||||
q = model.query("users").withProvider('facebook', facebook_id)
|
||||
q.fetch (err, result) ->
|
||||
return res.json 401, { err } if err
|
||||
u = result.get()
|
||||
console.log {facebook_id, u}
|
||||
if u
|
||||
return res.json
|
||||
id: u.id
|
||||
token: u.apiToken
|
||||
else
|
||||
# FIXME: create a new user instead
|
||||
return res.json 403, err: "Please register with Facebook on https://habitrpg.com, then come back here and log in."
|
||||
|
||||
|
||||
###
|
||||
GET /user/task/:id
|
||||
###
|
||||
|
|
|
|||
|
|
@ -399,7 +399,7 @@ describe 'API', ->
|
|||
done()
|
||||
|
||||
|
||||
it 'POST /api/v1/user/auth', (done) ->
|
||||
it 'POST /api/v1/user/auth/local', (done) ->
|
||||
userAuth =
|
||||
username: username
|
||||
password: 'icculus'
|
||||
|
|
@ -412,3 +412,25 @@ describe 'API', ->
|
|||
expect(res.body.id).to.be currentUser.id
|
||||
expect(res.body.token).to.be currentUser.apiToken
|
||||
done()
|
||||
|
||||
it 'POST /api/v1/user/auth/facebook', (done) ->
|
||||
id = model.id()
|
||||
userAuth = facebook_id: 12345, name: 'Tyler Renelle', email: 'x@y.com'
|
||||
newUser = helpers.newUser(true)
|
||||
newUser.id = id
|
||||
newUser.auth = facebook:
|
||||
id: userAuth.facebook_id
|
||||
name: userAuth.name
|
||||
email: userAuth.email
|
||||
console.log {newUser}
|
||||
model.set "users.#{id}", newUser, ->
|
||||
|
||||
request.post("#{baseURL}/user/auth/facebook")
|
||||
.set('Accept', 'application/json')
|
||||
.send(userAuth)
|
||||
.end (res) ->
|
||||
expect(res.body.err).to.be undefined
|
||||
expect(res.statusCode).to.be 200
|
||||
expect(res.body.id).to.be newUser.id
|
||||
#expect(res.body.token).to.be newUser.apiToken
|
||||
done()
|
||||
|
|
|
|||
Loading…
Reference in a new issue