1

認証にspring-security-facebookプラグインを使用しています。それはうまく機能します、今私は承認を必要とするspring-social-facebookのいくつかの機能を使おうとしています。コントローラから、(FacebookTemplateオブジェクトを作成するために)有効なaccessTokenをどこで取得できますか?

これが私がプラグインを使用している方法です:

1)ドメインクラスOAuthUserを追加しました(プラグインではなくプロジェクトに)2)FacebookAuthDaoImplを生成しました3)生成されたメソッドを編集しました。たとえばcreate()

で、ユーザーのインスタンスを作成します(メインドメインクラスSecUser)を設定し、プロファイル情報

と新しいOAuthUser(uid、accessTokenを設定し、作成されたメインユーザーに関連付けます)を設定します。

更新1: FacebookAuthDaoImplクラスにこれらの3つのメソッドを追加しました。

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を持っています。

4

1 に答える 1

1

デフォルトの DAOを使用している場合:

accessTokenFacebok User のドメイン オブジェクトのフィールドに保存されます。

という名前のフィールドがない場合accessTokenは、追加する必要があります ( String accessToken)。理想的には、追加フィールド: Date accessTokenExpires. 両方のフィールドは、プラグインによって自動的に入力されます。

独自の DAO実装を作成した場合は、次のようになります。

  • create(FacebookAuthToken token)としてアクセストークンを渡しますtoken.accessToken.accessToken。好きな場所に収納できます
  • Boolean hasValidToken(F user)void updateToken(F user, FacebookAuthToken token)およびgetAccessToken(F user)-最初にトークンの有効期限を確認し、2番目に新しい値で更新し(トークンが期限切れになったときに呼び出されます)、最後に現在の値を返す必要があります。

あなたが言ったように、あなたはDAOの実装を所有しています。最後の 3 つの方法をどのように実装していますか?

于 2012-08-09T15:46:42.167 に答える