mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
allow user to create an access token to access stf api from user settings tab.
This commit is contained in:
parent
ddc24e5dc5
commit
62413b3780
21 changed files with 263 additions and 65 deletions
|
@ -7,6 +7,7 @@ var Promise = require('bluebird')
|
|||
var _ = require('lodash')
|
||||
var request = Promise.promisifyAll(require('request'))
|
||||
var adbkit = require('adbkit')
|
||||
var uuid = require('node-uuid')
|
||||
|
||||
var logger = require('../../util/logger')
|
||||
var wire = require('../../wire')
|
||||
|
@ -20,6 +21,7 @@ var zmqutil = require('../../util/zmqutil')
|
|||
var cookieSession = require('./middleware/cookie-session')
|
||||
var ip = require('./middleware/remote-ip')
|
||||
var auth = require('./middleware/auth')
|
||||
var jwtutil = require('../../util/jwtutil')
|
||||
|
||||
module.exports = function(options) {
|
||||
var log = logger.createLogger('websocket')
|
||||
|
@ -334,6 +336,39 @@ module.exports = function(options) {
|
|||
.on('user.settings.reset', function() {
|
||||
dbapi.resetUserSettings(user.email)
|
||||
})
|
||||
.on('user.keys.accessToken.generate', function(data) {
|
||||
var expiry = Date.now() + 100 * 365 * 24 * 3600
|
||||
, jwt = jwtutil.encode({
|
||||
payload: {
|
||||
email: user.email
|
||||
, name: user.name
|
||||
}
|
||||
, secret: options.secret
|
||||
, expiry: expiry
|
||||
})
|
||||
|
||||
var tokenId = uuid.v4()
|
||||
, title = data.title
|
||||
|
||||
return dbapi.saveUserAccessToken(user.email, {
|
||||
title: title
|
||||
, tokenId: tokenId
|
||||
, jwt: jwt
|
||||
})
|
||||
.then(function() {
|
||||
socket.emit('user.keys.accessToken.generated', {
|
||||
title: title
|
||||
, tokenId: tokenId
|
||||
, jwt: jwt
|
||||
})
|
||||
})
|
||||
})
|
||||
.on('user.keys.accessToken.remove', function(data) {
|
||||
return dbapi.removeUserAccessToken(user.email, data.title)
|
||||
.then(function() {
|
||||
socket.emit('user.keys.accessToken.removed', data.title)
|
||||
})
|
||||
})
|
||||
.on('user.keys.adb.add', function(data) {
|
||||
return adbkit.util.parsePublicKey(data.key)
|
||||
.then(function(key) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue