2014-03-12 19 views
7

我是新的使用grails和我的web應用程序我想要生成一個隨着用戶名長度爲15個字符的隨機令牌。令牌必須是唯一的。grails中唯一的隨機令牌生成

可以使用a-z和0-9中的所有字符,但不能使用特殊字符。 我試圖生成隨機令牌

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

,但我怎麼可以添加用戶名盈令牌像「JayKay586464ASDHH445」

+0

您能詳細解釋嗎?從我身邊用戶名+令牌應該工作:) – havenchyk

+0

獨特的隨機令牌是必須爲我的應用程序。所以我需要追加用戶名和符號genarated。 但我怎麼可以追加用戶名和發生器在這種情況下 – JayKay

+0

你可以使用運算符「+」連接字符串 – havenchyk

回答

5

這個怎麼樣?用戶名持有沒有令牌的原始用戶名,令牌是15個字符的令牌,而uTok是帶有令牌的用戶名

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}<==" 
+0

是的,這個UTok就是我所需要的。 – JayKay

8

String confirmCode= UUID.randomUUID().toString()使用該碼至生成令牌, 然後用「+」來連接字符串