grails中唯一的随机令牌生成
Posted
技术标签:
【中文标题】grails中唯一的随机令牌生成【英文标题】:Unique random token generation in grails 【发布时间】:2014-04-16 08:28:18 【问题描述】:我是 grails 的新手,在我的 Web 应用程序中,我想生成一个长度为 15 个字符的随机令牌以及用户名。并且令牌必须是唯一的。
可以使用 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”之类的令牌前面附加用户名
【问题讨论】:
能详细解释一下吗?从我这边用户名+令牌应该可以工作:) 我的应用程序必须使用唯一的随机令牌。所以我需要附加用户名和生成的令牌。但在这种情况下,我怎样才能将用户名和生成器一起附加 你可以使用运算符“+”来连接字符串 羞辱你can't just useUUID.randomUUID()
【参考方案1】:
String confirmCode= UUID.randomUUID().toString()
使用此代码生成令牌,
然后使用“+”连接字符串
【讨论】:
【参考方案2】:这个怎么样?用户名是不带token的原始用户名,token是15个字符的token,uTok是带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<=="
【讨论】:
以上是关于grails中唯一的随机令牌生成的主要内容,如果未能解决你的问题,请参考以下文章
Grails:ShiroSecurity - 登录没有用户名密码令牌的用户
Grails 2.5.4 / Spring Security Rest 1.5.4 - 验证令牌