使用spring security的Grails Facebook登录-如何知道登录的用户名

Posted

技术标签:

【中文标题】使用spring security的Grails Facebook登录-如何知道登录的用户名【英文标题】:Grails Facebook Login using spring security - how to know logged in user name 【发布时间】:2013-02-15 14:22:45 【问题描述】:

在带有spring security facebook插件的Grails应用程序中,当用户登录时,应用程序如何获取实际的facebook用户名,以便主页可以显示登录的用户名?

【问题讨论】:

【参考方案1】:

该插件提供 Facebook API access_token,您必须向 Facebook 请求此类用户详细信息。

示例:

添加对 Spring Social Facebook 的依赖:

dependency 
  compile 'org.springframework.social:spring-social-core:1.0.1.RELEASE'
  compile 'org.springframework.social:spring-social-facebook:1.0.1.RELEASE'

然后在创建用户时从 Facebook 加载它,方法是将以下内容添加到 FacebookAuthService:

void onCreate(FacebookUser user, FacebookAuthToken token) 
  Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
  FacebookProfile fbProfile = facebook.userOperations().userProfile

  //fill the name
  //fieldname ('fullname' at this example) is up to you
  user.fullname = fbProfile.name

另见

Spring Social 文档 - http://static.springsource.org/spring-social-facebook/docs/1.0.x/reference/html/apis.html#facebook-getProfile 关于 FacebookUserService - http://splix.github.com/grails-spring-security-facebook/guide/5%20Customization.html#5.1%20Using%20FacebookAuthService

【讨论】:

谢谢!。非常感谢您及时/详细的回复和帮助。 我是 Grails 的新手。我必须在我的 grails 应用程序中放置 void onCreate(FacebookUser user, FacebookAuthToken token) 操作 你要实现FacebookAuthService,放在这里

以上是关于使用spring security的Grails Facebook登录-如何知道登录的用户名的主要内容,如果未能解决你的问题,请参考以下文章

Grails - grails-spring-security-rest - 无法从 application.yml 加载 jwt 机密

Grails + spring-security-core:用户登录后如何分配角色?

使用 Spring Security Grails 插件编码密码

Grails 3.0 和 Spring Security

在 Grails 中使用 Pre/Post Spring-Security Annotations

Grails - 卸载 Spring Security Core