none
VS2015の「接続済みサービスの追加」で追加したOffice 365 APIの認証時の文字化けとJavaScriptエラー RRS feed

  • 質問

  • こちらのフォーラムに投稿するのが適切なのかがよくわかっていないのですが、Azure ADにかかわる箇所と判断し投稿させていただきました。

    Visual Studio 2015のCordovaプロジェクトに対して「接続済みサービスの追加」から「Office 365 API」を追加し、Office 365上のデータにアクセスするコードを試しています。

    Office 365との認証時、表示名や姓名が日本語のアカウントでログインしようとすると、idTokenに含まれる名前の情報が文字化け(例:\"family_name\":\"芳野\")し、idTokenをJSON.parse()メソッドで処理できず「JavaScript 実行時エラー: 文字が正しくありません。」というエラーが発生してしまいます。

    「o365auth.js」のidToken取得処理に対して、文字コードや言語の指定を変更することでどうにかならないかとも思うのですが、自力でうまく解決できていません。

    どなたかアドバイスいただけないでしょうか。

    2015年8月12日 14:59

回答

  • 試していないので正確な回答にはなっていないのですが、「o365auth.js」がUTF-8に対応していないと考えます。

    ソースを追ってみました。

    o365auth.js で Microsoft.Utility.decodeBase64AsString を呼び出して、idTokenをBASE64からdecodeしています。このdecode処理に問題があると思います。

    具体的には decodeBase64AsString からさらに呼び出される decodeBase64 の window.atob(base64) です。

    ここを ユニコード文字列 の対応を行えばうまくいくかも知れません。

    手元に開発環境が無いため、あくまで推測ですがお試しください。


    2015年8月25日 1:36

すべての返信