簡體   English   中英

如何在Android / IOS應用中通過Google Cloud EndPoints使用基本身份驗證(java)

[英]how to use basic authentication in Android/IOS app with Google Cloud EndPoints(java)

我正在嘗試將IOS應用程序使用Google End Point(Java),我不想使用Oauth2.0,因為它會使用戶強制擁有對應用程序不利的google帳戶。 如何對Google端點使用基本身份驗證(如(用戶名和密碼))。 另外,在用戶登錄后,如何基本上通過在服務器和客戶端應用之間共享身份驗證令牌來授權每個請求。

服務器端相當簡單:

@Entity
public class User {

     @Id private String username;
     private String password;
     /*getters setters ommited*/
}

@Api(name = "userapi", version = "v1", description = "userapi")
public class UserService {

     static{
         ObjectifyService.register( User.class );
     }

     @ApiMethod(name = "create")
     public User createUser(@Named("username") String username,     
                                    @Named("password") String password){
         User user = new User();
         user.setUsername(username);
         user.setPassword(password);
         ofy().save().entity(user);  
         return user;
    }

    @ApiMethod(name = "get")
    public User getUser(@Named("username") String username, 
                                  @Named("password") String password){
           User user = ofy().load().key(Key.create(User.class, 
                                                  username)).now(); 
           return user;
    }
}

您發送給createUser方法的注冊請求,以及發送給getUser的登錄請求。 我對目標C的了解不多,無法為您提供太多幫助。在Javascript客戶端示例下,可能會給您一些提示:

var login = function() {
    message = {
        "username" : $scope.username,
        "password" : $scope.password

    };
    console.log(message);

    gapi.client.userapi.get(message).execute(function(user) {
        console.log(user);
        if (!user.code && user.password) {
             //successfully logged in
            console.log('successfully  logged in');

        }
    });

};

關於令牌,有很多選擇。 您可以生成一些字符串,並在成功登錄到客戶端的情況下將其返回,並使用User對象將其保存到數據存儲中。 或者,您可以連接username:password並使用base64編碼字符串,並將結果字符串用作auth_token。 在最后一種情況下,您無需將其保存到數據存儲區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM