我使用spring-security-facebook插件进行身份验证。它运作良好,现在我试图使用需要授权的spring-social-facebook的一些功能。从我的控制器中,我可以在哪里获得有效的accessToken(以创建FacebookTemplate对象)?Grails spring-security-facebook插件的accessToken
这是我如何使用插件:
1)我添加了一个域类,OAuthUser(不在插件,但在我的项目) 2)我已经产生了FacebookAuthDaoImpl 3)我编辑的方法产生,例如,在创建(),I创建
+用户(主域类SecUser)的实例,并设置配置文件的相关信息
+新OAuthUser(其中,i设置UID,该的accessToken,并将其与创建的主用户相关联。
更新1: 我添加这些3种方法在我FacebookAuthDaoImpl类:
Boolean hasValidToken(OAuthUser user){
def now= new Date()
if(now.after(user.accessTokenExpires)){
return false
} else {
return true
}
}
void updateToken(OAuthUser user, FacebookAuthToken token){
user.accessToken = token.accessToken
user.save()
}
String getAccessToken(OAuthUser user){
return user.accessToken
}
但我仍然有过期的accessToken。
但你正在更新'user.accessTokenExpires'?如果hasValidToken为null,它会返回什么? – 2012-08-09 17:08:24
@IgorArtamonov我不知道,我想弄清楚从哪里可以得到到期日期。你有样品吗? (顺便说一句,我想出了如何从认证'FacebookAuthToken令牌= SecurityContextHolder.context.authentication \t token.accessToken = facebookAuthUtils.getAccessToken(token.code)') – yeka 2012-08-09 17:31:20
void updateToken(OAuthUser用户,FacebookAuthToken令牌){ 用户.accessToken = token.acceessToken.accessToken user.accessTokenExpiration = = token.acceessToken.expireAt } – 2012-08-10 04:57:52