12

私たちのウェブ アプリケーションは、Google アカウント認証を提供していません。WebApp2 認証を使用して独自の認証を実装しました: http://webapp-improved.appspot.com/tutorials/auth.html

Cloud Endpoints をモバイル アプリ/サードパーティ デベロッパー向けの API として使用したいと考えていますが、認証には oAuth2 を引き続き使用したいと考えています。

これを実装するために必要な手順は何ですか? AppEngine に独自の oAuth サーバーをセットアップする必要がありますか? また、Google クライアント ライブラリは互換性がありますか?

4

2 に答える 2

1

何もする必要はありません。app-engine にフェデレーション ログイン アプリがあり、Cloud Endpoints を使用する Android アプリを最近追加しました。特別なことをする必要はありません。関数に User パラメータを追加するだけです。ユーザー オブジェクトには、データにアクセスするために承認する必要があるユーザーの電子メールがあります。

@Api(name = "my_api",
        version = "v1",
        scopes = {"https://www.googleapis.com/auth/userinfo.email"},
        clientIds = {Constants.AUTH_CLIENT,
                Constants.AUTH_CLIENT_APIEXPLORER})
public class MyEndpoint {
    @ApiMethod(name = "fistEndpoint")
    public ResponseObject fistEndpoint(User user) throws OAuthRequestException {
        if (user == null) {
            throw new OAuthRequestException("Access denied!");
        }
        String email = user.getEmail();
        //Authorize the request here
        //make the ResponseObject and return it
    }
}

エンドポイントを作成したら、 https ://your-app.appspot.com/_ah/api/explorer にアクセスしてテストします

更新: 上記の例は Google アカウントに限定されています。別のタイプのアカウントが必要な場合は、次の投稿をご覧ください: Google Cloud エンドポイントのカスタム認証 (OAuth2 の代わり)

于 2014-01-26T10:10:26.243 に答える
0

Google Cloud エンドポイントはステートレスであるため、Google 認証を使用しないと、ユーザーのメールをエンドポイントに取得できません。

実際、エンドポイントは単なる http リクエストであるため、ベアラーのように http 認証に情報を渡すことができます。エンドポイントに関するこの情報に完全にアクセスできます。

お役に立てば幸いです。

于 2014-09-07T09:58:05.427 に答える