Auth0をspark-javaフレームワークを使用する私のWebアプリケーションに統合しようとしています。 問題は認証が完全に機能している間です(コールバックを含む)(Auth0のWebサイトで作成された新しいユーザーが表示され、Webサイトがリダイレクトされるのがわかります)、ログインしたユーザー情報にアクセスできません。私はSessionUtils.getAuth0User(request.raw())
のようないくつかの方法を試しましたが、どれも働いていません。 は、例えばここに提供チュートリアルで:私はスパークと似た何かをやってみましたが、GETはスパークで少し動作が異なりますので、私はこれを行うログインユーザーnull Auth0/Spark Java
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
final Auth0User user = SessionUtils.getAuth0User(req);
if (user != null) {
req.setAttribute("user", user);
}
req.getRequestDispatcher("/WEB-INF/jsp/home.jsp").forward(req, res);
}
:https://github.com/auth0-samples/auth0-servlet-sample/tree/master/01-Login 彼らはそうのようなユーザ情報でログインしてアクセスします:
port(Integer.valueOf(System.getenv("PORT")));
staticFileLocation("/spark/template/freemarker");
String clientId = System.getenv("AUTH0_CLIENT_ID");
String clientDomain = System.getenv("AUTH0_DOMAIN");
get("/", (request, response) ->
{
Map<String, Object> attributes = new HashMap<>();
Auth0User user = SessionUtils.getAuth0User(request.raw());
if(user != null) {
attributes.put("user", user);
attributes.put("loggedIn" , true);
}
else
attributes.put("loggedIn" , false);
attributes.put("clientId" , clientId);
attributes.put("clientDomain" , clientDomain);
return new ModelAndView(attributes, "index.ftl");
}, new FreeMarkerEngine());
コードは常に、ユーザーが作成され、データベースに保存され、サインインが無いランタイムやコンソールエラーが発生して正常に動作しているにもかかわらず、ヌルとしてユーザーを報告しています。私が試した他の方法私は、ユーザー変数を設定し、次のように書いた行を置き換えました。
代替方法1:ここ
Auth0User user = (Auth0User) request.session().attribute("auth0User");
auth0Userがここで参照そのソースコードに示すように、同じ文字列リテラルAuth0がSessionUtilsのそれらの実装で使用している:https://github.com/auth0/auth0-java-mvc-common/blob/master/src/main/java/com/auth0/SessionUtils.java
代替方法2:
Auth0User user = (Auth0User) request.raw().getUserPrincipal();
さらに、これは認証用のクライアント側を実行しているjavascriptコードです。
var lock = new Auth0Lock('${clientId}', '${clientDomain}', {
auth: {
redirectUrl: 'http://localhost:5000/build',
responseType: 'code',
params: {
scope: 'openid user_id name nickname email picture'
}
}
});
$(document).ready(function()
{
$('.signup').click(function()
{
doSignup();
});
});
function doSignup() {
lock.show();
}
私は毎回nullに評価されている理由がわかりませんし、私が間違っていることについていくつかのフィードバックが大好きです。ありがとう。
こんにちは、あなたはあなたのリクエスト/応答の詳細をブローサーで表示してください(スクリーンショット)? – Andrew