Pergunta

I am new with grails and on my web application i want to generate a random token with 15 characters length along with username. And tokens must be unique.

All characters from a-z and 0-9 can be use, but no special characters. I have tried to generate random token with

def generator = {String alphabet, int n -> new Random().with { (1..n).collec alphabet[ nextInt( alphabet.length() ) ] }.join() }} generator( (('A'..'Z')+('0'..'9')).join(), 9 )

but how can i append username infront of token like "JayKay586464ASDHH445"

Foi útil?

Solução 2

How about this? The username holds the original username without the token, token is the 15 character token and uTok is the username with the token

def generator = { String alphabet, int n ->
  new Random().with {
    (1..n).collect { alphabet[ nextInt( alphabet.length() ) ] }.join()
  }
}

def token = generator( (('A'..'Z')+('0'..'9')).join(), 15 )

def username = "JayKay"

def uTok = "${username}${token}"

println "==>${uTok}<=="

Outras dicas

String confirmCode= UUID.randomUUID().toString() use this codeto generate token, then use "+" to concatenate string

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top