split into methods

shared-server
bat 3 years ago
parent 3027d04584
commit fd5cbe0114

@ -17,7 +17,7 @@ export class Auth {
this.giteaClientSecret = giteaClientSecret this.giteaClientSecret = giteaClientSecret
} }
async redirect(event) { redirectUrl(state) {
const url = new URL( const url = new URL(
this.giteaWebBaseUrl + '/login/oauth/authorize' this.giteaWebBaseUrl + '/login/oauth/authorize'
) )
@ -28,14 +28,23 @@ export class Auth {
'redirect_uri', 'redirect_uri',
this.remoteBaseUrl + '/auth/callback' this.remoteBaseUrl + '/auth/callback'
) )
search.set('state', state)
url.search = search.toString()
return url.toString()
}
buildState() {
const timestamp = new Date().valueOf() const timestamp = new Date().valueOf()
const randomInt = Math.floor(Math.random() * 10000) const randomInt = Math.floor(Math.random() * 10000)
// TODO: sign // TODO: sign
const state = `${randomInt}-${timestamp}` return `${randomInt}-${timestamp}`
search.set('state', state) }
url.search = search.toString()
async redirect(event) {
const state = this.buildState()
const url = this.redirectUrl(state)
const headers = new Headers({ const headers = new Headers({
Location: url.toString() Location: url
}) })
cookie.setCookie(headers, { cookie.setCookie(headers, {
name: 'oauth.gitea.state', name: 'oauth.gitea.state',

Loading…
Cancel
Save