質問: 一部lineアカウントで、idトークンのペイロードがデコードできない ### 前提・実現したいこと ウェブアプリにlineログインを組み込むを参考にブラウザ上でのline login機能を実現したいです。 ### 発生している問題・エラーメッセージ 一部アカウントで、返却されたidトークンのペイロードがデコードできません。 現時点で発生しているのは5件中1件です。 全件で発生するわけではないため、検証に困っています。 尚、デコード出来ないアカウントは何度、tokenを取り直してもデコードできません。 #### golangでのエラー ```golang unexpected end of json input ``` #### javascriptでのエラー ```javascript vm55:1 uncaught domexception: failed to execute ‘atob’ on ‘window’: the string to be decoded is not correctly encoded. at :1:1 ``` ### 該当のソースコード #### golang ``` type lineidtoken struct { iss string sub string aud string exp int64 iat int64 authtime *int64 nonce *string arm []string name string picture string email *string } func decodejwt(cre *credentialinfo) (*lineidtoken, error) { slice := strings.split(cre.idtoken, ".") dec, _ := base64.stdencoding.decodestring(slice[1]) var idtoken *lineidtoken if err := json.unmarshal(dec, &idtoken); err != nil { return nil, err } return idtoken, nil } ``` #### javascript ``` atob({{{my_token}}}) ``` ### 試したこと 1. golangで実装した、oauth認証のtokenをgolang内のアプリでdecodeが出来ない。 2. golangで実装した、oauth認証で取得した、tokenをコピペし、consoleでdecodeしたが出来ない。 ### 補足情報(fw/ツールのバージョンなど)
回答: 質問者です。 > 全件で発生するわけではないため、検証に困っています。 > 尚、デコード出来ないアカウントは何度、tokenを取り直してもデコードできません。 試しに失敗するアカウントの名前を変えてみたのですが、「半角英数字」が入ってる場合ngでとの条件を見つけました。 尚、この失敗するアカウントで別のサービスのlineログインは、「半角英数字」が入ってる場合でもokでした。