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 - 验证令牌

如何删除grails中的spring安全令牌?

Grails Spring Security REST 插件 - 令牌存储失败

Grails 唯一约束 - 它可以双向工作吗?

使用 Spring Security 3 在我的 Grails OAuth 提供程序上存储访问令牌