3

認証目的でSpring Security Core Pluginを使用し、Facebook ログイン目的で Spring Security の Facebook 認証を使用しています。私の FB ログインは、Spring Security Plugin で正常に動作します。しかし、私はそれについていくつかの問題を抱えています。Facebook ユーザーの UserName、Email、phoneno などを取得して、自分のデータベースに保存するにはどうすればよいですか。

これが私のSpring Security Core Person.groovy Domain Classファイルです...

class Person {

transient springSecurityService

String realName
String username
String password
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
byte[] avatar
String avatarType
    ...... more code ...........
}

ここで、realName (Facebook ユーザー名を保存するため)、avatar (Facebook ユーザー プロファイル画像を保存するため) などのフィールドをいくつか追加したことがわかります。現在、ユーザー名はこのように保存されていfacebook_100003641451723ます。realName フィールドに保存できるように、ユーザーの本名が必要です。どうすればこれを行うことができますか??

アップデート :

スプリングセキュリティを使用したGrails Facebook Login - ログインユーザー名を知る方法が1つ見つかりました

しかし、このコードをどこに置いたのかわかりません...

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.realName = fbProfile.name
 }

アップデート :

これで、実行して新しいサービスを作成grails create-service FacebookAuthServiceし、FacebookAuthService.groovy が services/groovypublish/FacebookAuthService.groovy 内に作成されました。

ここに私の FacebookAuthService.groovy ファイルがあります..

package groovypublish

import org.grails.twitter.Person
import com.the6hours.grails.springsecurity.facebook.FacebookAuthToken


class FacebookAuthService {

   def serviceMethod() {

   }

   void onCreate(Person 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.realName = fbProfile.name
  }

  }

BuildConfig.groovy ファイルに依存関係を配置します ....

dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.

     runtime 'mysql:mysql-connector-java:5.1.22'
     compile 'org.springframework.social:spring-social-core:1.0.1.RELEASE'
     compile 'org.springframework.social:spring-social-facebook:1.0.1.RELEASE'
}

今、grailsアプリケーションを起動grails run-appするとエラーが表示されます

     C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 14: unable to resolve class Facebook @ line 14, column 12.
 Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
          ^

     C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 14: unable to resolve class FacebookTemplate @ line 14, column 23.
 Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
                     ^

     C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 15: unable to resolve class FacebookProfile @ line 15, column 19.
 FacebookProfile fbProfile = facebook.userOperations().userProfile
                 ^

 3 errors
4

2 に答える 2

0

Oauth プラグインをお勧めします。ここで確認してください: http://grails.org/plugin/oauth このプラグインを使用して Grails プロジェクトを開発しています。私のプロジェクトには Facebook 認証が含まれており、現在は正常に動作しています。

于 2014-03-20T03:50:28.387 に答える