goaでWebサーバーを作成しています(評判が足りない、スタックオーバーフロータグを作成できません)。goaでユーザーが認識できるアクション
コントローラメソッド内でユーザーコンテキストを取得する方法が見つかりません。 基本認証でサポートされているJWT authを使用します。 私はJWTミドルウェア経由で保護されたJWTセキュアアクションを持っており、パスワードなどをチェックしています。
私が望むのは、JWTトークンからセキュアメソッドにユーザ名を取得することです。何か方法はありますか?
ゴアデザインファイルの断片:
var JWT = JWTSecurity("jwt", func() {
Header("Authorization")
Scope("api:access", "API access") // Define "api:access" scope
})
Security(JWT, func() {
// Use JWT to auth requests to this endpoint
Scope("api:access") // Enforce presence of "api" scope in JWT claims.
})
Action("secure", func() {
Description("This action is secured with the jwt scheme")
Routing(GET("/jwt"))
Response(OK)
})
このDSLは、このメソッドに生成されます:
func (c *JWTSessionsController) Secure(ctx *app.SecureJWTContext) error {
return ctx.OK(&app.Success{false})
}
発生アクションが(ミドルウェアが搭載され、すべての検証が通過)を確保し、うまく機能しています。しかし、私はアクションでユーザー名を取得したい。どういうわけか可能ですか?
私はこの方法でそれを取得したいと思います:私は二回JWTを解析する必要があります
ctx.User.Username
今のところ。 :(
私は、base64トークンの主張を解析するヘルパーを作った。
それは非常にいいですが、それはまだ生成されたコントローラからJWT-行く枠組みを隔離するために、いくつかのラッピングが必要な場合にはそれが見えます。それは仕事をする必要がありますように – vvwccgz4lh