gpt4 book ai didi

facebook - Grails Spring-Security-Facebook插件的accessToken

转载 作者:行者123 更新时间:2023-12-02 14:45:38 24 4
gpt4 key购买 nike

我正在使用spring-security-facebook插件进行身份验证。它运作良好,现在我正在尝试使用需要授权的spring-social-facebook的某些功能。从我的 Controller ,哪里可以获取有效的accessToken(以创建FacebookTemplate对象)?

这就是我使用插件的方式:

1)我添加了一个域类OAuthUser(不是在插件中,而是在我的项目中)
2)我已经生成了一个FacebookAuthDaoImpl
3)我编辑了生成的方法,例如在create()中,我创建了
+一个用户实例(主域类SecUser)并设置配置文件信息
+一个新的OAuthUser(我在其中设置uid,accessToken,并将其与创建的主要用户相关联。

更新1:
我在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。

最佳答案

如果您使用的是默认DAO :

它存储在Facebok用户的域对象的accessToken字段中。

如果没有名为accessToken的字段,则应添加它(String accessToken)。理想情况下,还有一个附加字段:Date accessTokenExpires。并且两个字段都将由插件自动填充。

如果您已经创建了自己的 DAO 实现,那么:

  • create(FacebookAuthToken token)将访问 token 作为token.accessToken.accessToken传递。您可以将其存储在任何希望的位置
  • Boolean hasValidToken(F user)void updateToken(F user, FacebookAuthToken token)getAccessToken(F user)-首先应检查 token 到期,第二次应使用新值( token 过期时调用)进行更新,最后应重新计算当前值。

  • 如您所说,您拥有DAO的职责。最后三种方法的实现方式?

    关于facebook - Grails Spring-Security-Facebook插件的accessToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886814/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com