0

私はthisサンプルコードから "isRegistered" APIに従っています。私はセキュリティコンテキストから電話番号を取得する方法を理解していませんでした。ibm-mobileはセキュリティー・コンテキストから最初にモバイル番号を取得する方法はありますか?

私が使用したいAPIは次のとおりです。

@Path("/isRegistered") 
@GET 
@Produces("application/json") 
@OAuthSecurity(enabled = true) 
@ApiOperation(value = "Check if a phone number is registered", 
     notes = "Check if a phone number is registered", 
     httpMethod = "GET", 
     response = Boolean.class 
) 
@ApiResponses(value = { 
     @ApiResponse(code = 200, message = "OK", 
       response = String.class), 
     @ApiResponse(code = 401, message = "Not Authorized", 
       response = String.class), 
     @ApiResponse(code = 500, message = "Cannot check if phone number is registered", 
       response = String.class) 
}) 

public Boolean isRegistered() { 
    //Getting client data from the security context 
    ClientData clientData = securityContext.getClientRegistrationData(); 
    if (clientData == null) { 
     throw new InternalServerErrorException("This check allowed only from a mobile device."); 
    } 

    String number = clientData.getProtectedAttributes().get(SMSOTPSecurityCheck.PHONE_NUMBER); 
    return number != null && !number.trim().equals(""); 
} 

セキュリティコンテキストはクライアントの電話番号を持っていない方法は?

+0

質問本体にコードを入れてください – mhatch

答えて

0

このサンプルでは、​​クライアントプロジェクトもあります。完全なサンプルを参照してください。/"(アダプタcodeパス@Pathで今

MainViewController.codeDialog("Phone Number", message: "Please provide your phone number",isCode: true) { (phone, ok) -> Void in 
if ok { 
     let resourseRequest = WLResourceRequest(URL: NSURL(string:"/adapters/smsOtp/phone/register/\(phone)")!, method:"POST") 
..... 

:クライアント側のロジックhere

は、ユーザーがアダプタの呼び出しでサーバーに送信された電話番号を、提供するように求めています「登録/ {にphoneNumber})次のコードに気づく:

clientData.getProtectedAttributes().put(SMSOTPSecurityCheck.PHONE_NUMBER, phoneNumber); 
    securityContext.storeClientRegistrationData(clientData); 

この電話番号は、セキュリティコンテキストにそれを作った方法です。

サンプルを実行し、Wiresharkなどのツールを使用して、クライアントとサーバー間のデータフローを分析します。

+0

携帯電話番号が登録されていない場合にのみ登録します。だから、それが登録されているかどうかを調べるために、まず "isRegistered" APIを呼び出す必要があります。それでは、 "isRegistered" APIはどのように携帯電話番号を取得しますか?たとえば、私のAPKファイルは2つのモバイルデバイスにインストールされています。 1つのモバイル番号がサーバーに登録されていて、もう1つは登録されていません。私が携帯電話番号を送信していないときに、サーバーは2つのデバイスをどのように区別しますか?それはどこから電話があったかをどのように知っていますか? – dhiraka

+0

完全なプロジェクトが利用可能なので、すべての質問をする前にまず試してみることをお勧めします。 Wiresharkは、どのパラメータがサーバに到達し、どのサーバが応答するかを示す優れたツールです。 –

関連する問題